アプリ版:「スタンプのみでお礼する」機能のリリースについて

MySQLから取得したデータをPHPで表示する際while()を使用しているのですが、この際に段ごとに配色を変えるには度押したらよいのでしょうか?

完成イメージとしてYahoo!ニュースの主なトピックス(http://dailynews.yahoo.co.jp/fc/local/)にあるように1段目は白2段目はねずみ色そして3段目は白と1段ごとに異なる配色をしたいのです。

以下の場合すべてが赤になってしまう。
print("<table><tr><td>データ</td></tr><tr>");
while($row = mysql_fetch_object($res)) {
print("<td color=\"red\">".$row['YY'}."</td>");
}
print("</tr></table>

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

A 回答 (3件)

こんにちは、



二通り考えられますが、
一定周期で色を変える場合は、

例えば、交互に色を変える場合は、
データの数をmysql_num_lowsなどで取得して、
その総数を$aなどとして、
下記のようにすれば、赤と青交互になりますし

if ($a%2 == 0){
print("<td color=\"red\">".$row['YY'}."</td>");
} else {
print("<td color=\"bulue\">".$row['YY'}."</td>");
}

条件で変えたい場合は、mysqlに条件設定のフィールドを作成して、
条件により1,2,3など入力されるようにして、

その条件で1の場合は赤、2の場合は青、3の場合は黄色
などとすればよいのでは、ないでしょうか?

この回答への補足

回答ありがとうございます。

書いていただいたサンプルですが、どのようにして実装すればいいのでしょうか?

print("<table><tr><td>データ</td></tr><tr>");
while($row = mysql_fetch_object($res)) {
if ($a%2 == 0){
print("<td color=\"red\">".$row['YY'}."</td>");
} else {
print("<td color=\"bulue\">".$row['YY'}."</td>");
}
}
print("</tr></table>

ということでしょうか?この場合、レコード数が2以外はすべて青になってしまうような気がします。

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

補足日時:2006/01/31 17:51
    • good
    • 0

$a%2 …$aを2で割った余り


つまり、0か1

0/2=0余り0
1/2=0余り1
2/2=1余り0
3/2=1余り1
  :
  :
    • good
    • 0

whileをまわすのになぜtrをいれないのでしょうか?


このソースだと横に長い表ができると思いますが・・・。

それと一行ごとに色を変えたいということであれば、
tdではなくtrの色がえをすると良いのでは?

また行数をわって余りをだす方法のほかに、
以下のような方法があります。お試しください。
(ざっと書いたものなので書式が間違ってたらごめんなさい)

print("<table><tr><td>データ</td></tr>");
$color="red";
while($row = mysql_fetch_object($res)) {
$color=($color=="red")?"blue":"red";
print("<tr bgcolor=\"${color}\"><td>${row[YY]}</td></tr>\n");
}
print("</table>");

この回答への補足

大変参考になりました。ありがとうございました。

補足日時:2006/02/04 21:26
    • good
    • 0

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