みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPのスタイルシート割り当て

現在、MySQL+PHPでアドレス帳を作成中です。
該当するデータを検索で拾い出し、while文を使ってtableで配置しています。
検索結果が複数ある時に、見やすくする為に交互に色有り、色無しとスタイルシートを割り当てたいのですがどうすればよろしいでしょうか?

ここ(OKWave)の質問一覧(http://okwave.jp/c256.html)で
交互にグレー、白で表示されてます。
こんな感じにしたいのです。

現状:
$res = mysql_query($sql, $con);

print("<table border=\"0\">");
print("<tr><td>No</td><td>社員No</td><td>ジョブNo</td><td>所属</td><td>氏名</td><td>ふりがな</td><td>写真</td><td>表示</td></tr>");
while($row = mysql_fetch_array($res)) {
print("<tr>");
print("<td>".$row["no"]."</td>");
print("<td>".$row["idno"]."</td>");
print("<td>".$row["jobno"]."</td>");
print("<td>".$row["shitenno"]."</td>");
print("<td>".$row["name"]."</td>");
print("<td>".$row["furigana"]."</td>");
print("<td>".$row["photofilename"]."</td>");
print("<td><a href= \"profile.php?no=".$row["no"]."\" target=\"_blank\">表示</a></td>");
print("</tr>");
}
print("</table>");

よろしくお願いいたします。

投稿日時 - 2006-11-09 21:02:33

QNo.2528610

すぐに回答ほしいです

質問者が選んだベストアンサー

colorを三項演算子で順にいれかえるだけです。
なお可読性をあげるにはヒアドキュメントがおすすめです。

<?PHP
$res = mysql_query($sql, $con);

print<<<eof
<table border="0">
<thead>
<tr>
<td>No</td>
<td>社員No</td>
<td>ジョブNo</td>
<td>所属</td>
<td>氏名</td>
<td>ふりがな</td>
<td>写真</td>
<td>表示</td>
</tr>
</thead>
<tbody>

eof;
while($row = mysql_fetch_array($res)) {
$color=$color=="#E0E0E0"?"#FFFFFF":"#E0E0E0";
print<<<eof
<tr bgcolor="{$color}">
<td>{$row["no"]}</td>
<td>{$row["idno"]}</td>
<td>{$row["jobno"]}</td>
<td>{$row["shitenno"]}</td>
<td>{$row["name"]}</td>
<td>{$row["furigana"]}</td>
<td>{$row["photofilename"]}</td>
<td><a href="profile.php?no={$row["no"]}" target="_blank">表示</a></td>
</tr>

eof;
}
print <<<eof
</tbody>
</table>

eof;
?>

投稿日時 - 2006-11-09 22:42:23

お礼

yambejpさん

やってみました。
うまくいきました!!
ありがとうございます。

print<<<eof ってのがPHPのマニュアル本に載ってなかったので
できるか不安でしたが、無事にできました。
これを使うと、print();より楽ですね

投稿日時 - 2006-11-10 23:33:20

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

スタイルシートのクラスを使うのがいいと思いますよ。
Class aに赤、 class b に黄色とかして

WHILEのループの度にclass名を入れ替えると簡単だと思う。
if ($class_name=="a")
{
$class_name="b";
}else {
$class_name="a";
}
print("<tr class = ".$class_name.">");

それの方が色の変更が楽でしょう。

投稿日時 - 2006-11-10 09:42:28

お礼

gryfinndorsさん

ありがとうございます。
このやり方も参考にしたいと思います。
ソースが簡素化できそうですね

皆さんのおかげで作業が進みました。m(__)m

投稿日時 - 2006-11-10 23:35:42

ANo.1

例えば、color等の項目を作ってデータをffffffとccccccを格納しておく。
print("<tr bgcolor=\"#" . $row["color"] ."\">");

等としてはどうでしょうか?

投稿日時 - 2006-11-09 21:49:11

お礼

ebikuさん

ありがとうございます。
ちょっとした関数の使い方次第なんですね。
参考になりました。

投稿日時 - 2006-11-10 23:31:05

あなたにオススメの質問