dポイントプレゼントキャンペーン実施中!

現在、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>");

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

A 回答 (3件)

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;
?>
    • good
    • 0
この回答へのお礼

yambejpさん

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

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

お礼日時:2006/11/10 23:33

スタイルシートのクラスを使うのがいいと思いますよ。


Class aに赤、 class b に黄色とかして

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

それの方が色の変更が楽でしょう。
    • good
    • 0
この回答へのお礼

gryfinndorsさん

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

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

お礼日時:2006/11/10 23:35

例えば、color等の項目を作ってデータをffffffとccccccを格納しておく。


print("<tr bgcolor=\"#" . $row["color"] ."\">");

等としてはどうでしょうか?
    • good
    • 0
この回答へのお礼

ebikuさん

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

お礼日時:2006/11/10 23:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!