• ベストアンサー

【初心者】特定の文字に色をつけたい

初歩的な質問で恐縮ですが教えてください。 MySQLで、あるレコードのあるカラム(1000レコードのうち、20レコードくらいで、20のカラムはばらばら)の文字だけ指定して色をつけて出力したいのです。 この場合、MySQLのデータに何か書き込むのでしょうか。 それとも、出力の際に工夫するのでしょうか。 何卒よろしくお願いいたします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

updateでjnnのnameを更新するはいただけないですね・・・ こんな風にclassの設定を別テーブルで管理してはどうでしょう? jnnテーブル id|name|その他・・・ 1,hoge 2,fuga 3,piyo ・・・・ classnameテーブル id,classname 1,hot 3,cool →2はクラスを設定しない=色をつけない なお、スタイルはphpでイチイチprintせず最初からかいておくか 外部ファイルにまとめておけばすっきりします。 //hoge.css p.hot {color: red;} p.cool {color: blue;} //hoge.php <html> <head> <link rel="stylesheet" type="text/css" href="hoge.css" /> </head> <body> <? $sql = "select j.name,c.classname from jnn as j left join classname as c on j.id=c.id"; $res = mysql_db_query($db,$sql); while($row = mysql_fetch_array($res)){ print "<p class='{$row["classname"]}'>{$row["name"]}</p>"; } ?> </body> </html>

Scipio93
質問者

お礼

GWで出かけておりまして、お礼が遅くなり申し訳ございませんでした。全くの素人なもので、cssも初めて知りました。大変お恥ずかしい限りです。今後ともよろしくお願いいたします。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ポイントは3点 (1)どのデータに色をつけるか 法則性があるならPHPで判断できます、最初から指定があるなら データベース側にフラグ用のフィールドをつくっておくとよいでしょう。 (2)タグにクラスを設定する (1)でえた色をつける情報をもとに、tdのタグにclassをしていします。 (3)クラスに色をつける 文字に色をしていするならcolorをいじればよいでしょう。 これはPHP側で随時やるよりも最初からcssで指定しておいた方がよいです

Scipio93
質問者

補足

「class」というのを初めて知りました。大体できました。ありがとうございました。しかし、もっと基本的なことだと思いますが、もうひとつ教えてください。 $sql = "select name from jnn where n = 77"; $res = mysql_db_query($db,$sql); while($row = mysql_fetch_array($res)){ $sql = "update jnn set name = '<p class=hot>$row[name]</p>' where n = 77"; mysql_db_query($db,$sql); } print("<style type=text/css>"); print("p.hot {color: red}"); print("</style>"); というふうにやりましたら、n = 77 の [name] が無事に赤文字になりました。 この77を関数でやるにはどうしたらよいのでしょうか。 $x = "77" n = $x としたらエラーとなりました。 全く初心者の質問かと思いますが、何卒よろしくお願いいたします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>色をつけて出力したい 意味がちょっとわからないです。 MySQLとはあくまでもデータベースですので出力はされないはずですが? どういう出力を想定していますか?

Scipio93
質問者

補足

HTMLで下記のように表をそのまま出力することを想定しています。 $sql = "select * from data;"; $rs = mysql_db_query($db,$sql); $num = mysql_num_fields($rs); print("<table border=1>"); for ($i=0;$i<$num;$i++){ print("<td></td>"); } while($row=mysql_fetch_array($rs)){ print("<tr>"); for($j=0;$j<$num;$j++){ print("<td><nobr>".$row[$j]."</nobr></td>"); } print("</tr>"); } print("</table>");

関連するQ&A