php、mysqlを見よう見まねでやっている
初心者です。
以下のような表をphpで作りました。
これでできた表の
d列の行の値(文字)を全て比べて
値がその他の行と一行でも違っていたら
(他の行と揃って同じでなかったら)
errorを出したいと思っています。
どのような式を書いたらd列の全ての行の
値(文字)を調べ、errorを出すことが
できるのでしょうか?
<tr>
<th>a</th>
<th>b</th>
<th>c</th>
<th>d</th>
</tr>
<? while ( $row = mysql_fetch_array( $result )){ ?>
<tr>
<td><?= $row['a'] ?></td>
<td><?= $row['b'] ?></td>
<td><?= $row['c'] ?></td>
<td><?= $row['d'] ?></td>
</tr>
<? ; } ?>
結果
a b c d
aaa bbb ccc ddd
aaa bbb ccc ddd
aaa bbb ccc dde→(errorを出したい)
errorを出せれば下記のようなif文にしたいと思っています。
<? if($d==error){XXX;}
else{ooo;} ?>
上記式も見ようまねでよくわかっていなく、
質問が理解して頂けるかどうかですが、
どうかご教授の程よろしくお願い致します。
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 "エラー";
?>
再度回答頂きまして大変ありがとうございます。
>countが2以上になりますのでエラーとすればいいでしょう。
は先ほど頂いた回答で理屈的にはわかったのですが、
私の質問がまた悪く、
このwhile文はwhereで検索したループでしたので
出来そうもないな。。どうしようと思っていたところですが、
PHPフローの中で処理する式を書いて頂いて大変助かりました!
この通りに当てはめところ、見事に機能致しました。
素晴らしい回答を感謝致します。
とても助かります。
私にはとても考えられません。
また何かありましたら是非よろしくお願致します。
本当にありがとうございました。
No.1
- 回答日時:
>値がその他の行と一行でも違っていたら
>(他の行と揃って同じでなかったら)
>errorを出したいと思っています。
仕様がまずいですね
dddとddeがあった場合、なぜdddが正しくてddeが正しくないと言い切れるのでしょうか?
むしろdddが正しくないという判断があるのでは?
あえて方法を考えるなら
select d,count(*) from テーブル group by d
でdごとの件数をカウントしておき、dが最大値でないものは
エラーとして処理するようなクエリーを書くくらいでしょうか?
その場合でも最大値が一つだとは限らないので何とも言えませんが・・・
この回答への補足
回答大変ありがとうございます。
>dddとddeがあった場合、なぜdddが正しくてddeが正しくないと言い切れるのでしょうか?
質問の仕方がわかりにくく申し訳ありません。
その通りでして、私はdddが正しいとは質問しているつもりはなく、d列の値が揃っていなかったらerrorを出せるような式が出来ないのかなと思って質問したつもりです。
>dごとの件数をカウントしておき、dが最大値でないものはエラー
とありますが、同じ値が多い少ないは関係なく、ただ単にdの行の値が全て揃っていなければエラーでokなのです。
また宜しけらば回答頂けると大変助かります。
どうか宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP+MySQLでの配列のinsert文に...
-
CSVにエクスポートする保存...
-
ログインページ
-
入れ子のようにしてデータを作...
-
PHPでMySQLデータを呼び出し、w...
-
dbに登録したデータをphpのプル...
-
テキストボックスに入れた内容...
-
phpで複数の検索語を検索対象に...
-
実行時エラー3131 FROM 句の構...
-
PHPからデータベースに接続した...
-
phpを使って、絞り込み検索、条...
-
LocalのNotesメールDBをVBAで参...
-
VBAをつかってクエリの情報を抽...
-
アポストロフィを含む文字列の追加
-
stringaddslashes 半角¥が消える
-
SQLのif()に関して。。。
-
MySQLのテーブル選択について
-
php sqlite count 列数取得
-
SQLite3にPHPでデータの更新・...
-
受け取ったIDに該当する物にデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで[]の使い方について
-
dbに登録したデータをphpのプル...
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
ヒアドキュメントについて
-
MySQLに保存した画像を表示したい
-
PHP 10件表示 "前へ" "次へ"
-
mysqlから取得した配列をカンマ...
-
DBで検索結果に該当するデータ...
-
PEAR DBでの行取得について
-
検索結果にラジオボタンを付加...
-
SELECT結果から動的にコンボボ...
-
検索結果をgoogleのように数件...
-
PHPでMySQLデータを呼び出し、w...
-
PHPでMySQLのデータを2次元配...
-
checkboxクリック時、SQLを実行...
-
php5.2.9に変更後に不具合について
-
PDOでLIKE検索
-
PHP+MySQLでの配列のinsert文に...
-
PHP・MySQL使用で、年齢制限を...
おすすめ情報