- ベストアンサー
データベースの表示方法
初心者です。よろしくお願い致します。 mysqlで50個ほどのフィールドがあるデーターの表示方法で悩んでいます。 一覧で表示させる場合、各フィールドになにかしらのデーターが入っている場合のみ表示させたいのですが、フィールド数が多くて頭が混乱しています。 具体的な例は ID1の場合フィールド1,5,7,8,10,22 になにかしらのデーターが入っている場合の表示は 1 5 7 8 10 22 ID2の場合、フィールドに5,6,7,8,18,45 5 6 7 8 18 45 などといった感じでデーターがある箇所のみ表示したいと思っています。 if(フィールド名[] == ""){ といった感じで1個ずつやっていたのですが、すごく大変ですので、これらを一括で判断して表示させるような方法はありますでしょうか? ご存知の方がいましたら是非お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データベースから取得するときに配列に入りますよね $row = mysql_fetch_row($result); 後はforeach等のループ内で判定すれば良いのではないでしょうか foreach ($row as $data) { if ($data) echo $data . "<br>\n"; }
その他の回答 (1)
- foreach
- ベストアンサー率51% (43/84)
> 表示されているデーターのフィールドなどを取得する事はできないでしょうか? フィールドってのは$row['****']の****の値(添え字)のことですか? だとしたら、#1さんのコードにちょっと追加すると出来ます。 foreach ($row as $key => $val ){ if ($val) { echo 'データ:' . $val . "<br>\n"; echo 'KEY:' . $key . "<br>\n"; } } 上みたいな書き方をすると、$keyに$row['****']の****の値が入ります。
お礼
ありがとうございます。 おかげで解決する事ができました!
お礼
ありがとうございます。 さっそくこちらの方法で試してみました。 うまく表示できたのですが、表示されているデーターのフィールドなどを取得する事はできないでしょうか? なにが入っているか別のテーブルからデータの名称を表示させようと思ったのですが、うまくできませんでした。