• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysql php ループ列の行の値を比べたい)

PHPでMySQLのループ列の行の値を比較したい

このQ&Aのポイント
  • 初心者の方がPHPでMySQLのループ列の行の値を比較する方法について質問されています。
  • 質問者は、あるテーブルのd列の行の値を全て比べて、他の行と一致しなかった場合にerrorを表示したいと考えています。
  • また、質問者はPHPのif文を使用して、errorを検出した場合とそれ以外の場合で処理を分けたいと述べています。

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

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

ああ、なるほど、曲解して失礼しました。 であれば select count(distinct d) as count from テーブル というクエリを実行して、 dがそろっていない場合はcountが2以上になりますのでエラーとすればいいでしょう。 PHPフローの中で処理するならフラグ管理して 以下のように前回のデータを取っておいて比較してもよいかも <?PHP $error_flag=false; $pre_d=""; while ( $row = mysql_fetch_array( $result )){ if($pre_d !=="" and $row["d"]!==$pre_d) $error_flag=true; 処理・・・ $pre_d=$row["d"]; } if($error_flag) print "エラー"; ?>

chikomaru
質問者

お礼

再度回答頂きまして大変ありがとうございます。 >countが2以上になりますのでエラーとすればいいでしょう。 は先ほど頂いた回答で理屈的にはわかったのですが、 私の質問がまた悪く、 このwhile文はwhereで検索したループでしたので 出来そうもないな。。どうしようと思っていたところですが、 PHPフローの中で処理する式を書いて頂いて大変助かりました! この通りに当てはめところ、見事に機能致しました。 素晴らしい回答を感謝致します。 とても助かります。 私にはとても考えられません。 また何かありましたら是非よろしくお願致します。 本当にありがとうございました。

その他の回答 (1)

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

>値がその他の行と一行でも違っていたら >(他の行と揃って同じでなかったら) >errorを出したいと思っています。 仕様がまずいですね dddとddeがあった場合、なぜdddが正しくてddeが正しくないと言い切れるのでしょうか? むしろdddが正しくないという判断があるのでは? あえて方法を考えるなら select d,count(*) from テーブル group by d でdごとの件数をカウントしておき、dが最大値でないものは エラーとして処理するようなクエリーを書くくらいでしょうか? その場合でも最大値が一つだとは限らないので何とも言えませんが・・・

chikomaru
質問者

補足

回答大変ありがとうございます。 >dddとddeがあった場合、なぜdddが正しくてddeが正しくないと言い切れるのでしょうか? 質問の仕方がわかりにくく申し訳ありません。 その通りでして、私はdddが正しいとは質問しているつもりはなく、d列の値が揃っていなかったらerrorを出せるような式が出来ないのかなと思って質問したつもりです。 >dごとの件数をカウントしておき、dが最大値でないものはエラー とありますが、同じ値が多い少ないは関係なく、ただ単にdの行の値が全て揃っていなければエラーでokなのです。 また宜しけらば回答頂けると大変助かります。 どうか宜しくお願い致します。

関連するQ&A

専門家に質問してみよう