- ベストアンサー
データベース検索結果がない場合の表示方法について
- データベース検索結果がない場合に表示する方法について教えてください。
- データベースとPHPを使用してWEBページを作成していますが、検索結果がない場合に表示する方法について困っています。
- 現在、データベースとPHPを利用してWEBページを制作していますが、検索結果がない場合にどのように表示すればよいか分かりません。教えていただけますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
なるほどね。 であれば出力はforeach内で行い、breakしなければいいでしょう。 (breakをしているのはヒットしたらそのあとを検証する必要がないと 考えたからなので) <?php $data = array("aaa","bbb","ccc","aaa","bbb","ccc"); $val="aaa"; $flg=false; foreach($data as $v){ if($val==$v){ echo <<<EOM <p>$val</p> EOM; $flg=true; } } if(!$flg){ echo "<p>該当データがありません</p>"; } ?>
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
foreachで回すならフラグをたてる <?php $data = array("aaa","bbb","ccc","ddd"); $val="ddd"; $flg=false; foreach($data as $v){ if($val==$v){ $flg=true; break; } } if($flg){ echo <<<EOM <p>$val</p> EOM; }else{ echo "<p>該当データがありません</p>"; } ?>
補足
yambejp様、ご回答ありがとうございます。 この通りにすれば確かにできます。 しかし、本当に本当に申し訳ないのですが、私の説明不足でした。 $dataに格納されているものの重複をお伝えできていませんでした。 <!-- $data = array("aaa","bbb","ccc","aaa","bbb","ccc"); foreach ( $data as $val ): if( $val == aaa ): --!> 以下省略いたします。 上記のもので試してみると、はじめの質問でお伝えしたPHPなら2つ「aaa」が出力されるのですが、今回のyambejp様のご回答にこれをあてはめると、「aaa」が1つになってしまいます。 「aaa」は2つ出力されて、「該当データがありません」は1つの出力にするにはどうすればよいのでしょうか? PS. お聞きすることがとても心苦しく、5時間ぐらい格闘したのですが答えが見つからず、途方に暮れてyambejp様に再度質問してしまう形になったことを申し訳なく思っております。
- yambejp
- ベストアンサー率51% (3827/7415)
この場合ループ必要ですか? <?php $data = array("aaa","bbb","ccc"); $val="ddd"; if(in_array($val,$data)){ echo <<<EOM "<p>$val</p>"; EOM; }else{ echo "<p>該当データがありません</p>"; } ?>
お礼
yambejp様、早速のご回答ありがとうございます。 見事に出来ました^^ ありがとうございます。 これから早速実践したいと思います。 PS:また壁にぶつかってしまったらお助けください。
補足
yambejp様、お忙しいところ申し訳ありません。 実践したところ、今度は「該当データがありません」しか出なくなってしまいました。 実践したものはかなり装飾しなければならないので、現在どうしているかをうまくお伝えすることができず申し訳ないのですが、foreachを使っての解決策はございますでしょうか?
お礼
yambejp様、完璧に出来ました^^ うれしくて小躍りしております^^ yambejp様の肩でもあればオモミしたいところです。 yambejp様のおかげで次のステップに進めます。 本当に、本当にありがとうございました。