こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPとmysqlに関して

while($row3 = mysql_fetch_array($res3)){
$r3 = $row3['name'];
$d3 = $row3['day'];

while($row = mysql_fetch_array($res)){
$r = $row['name'];

if($days==$d3 and $r==$r3){
echo '<a href="tops2.php?id='.$row['id'].'"><div class="aaa"><div style="padding-top:10px">'.$row['name'].'<br><font color="red">出勤中</font></div></div></a>';
}else{
echo '<a href="tops2.php?id='.$row['id'].'"><div class="aaa"><div style="padding-top:15px">'.$row['name'].'</div></div></a>';
}
}}

簡単に説明すると、テーブルAのnameとテーブルBのnameが合致したら出勤中と表示させたいのですが、何故か合致したデータの一部しか出勤中と出ません。
なにがおかしいですか??

投稿日時 - 2012-03-14 11:45:56

QNo.7361420

すぐに回答ほしいです

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

テーブルAとテーブルBの関係がわからないのでアレですが、外側のwhileのnameより内側のwhileのnameが先行したらどうなるのとかは考えてないのでしょうか(Bテーブルの方のnameが先行した場合)。

内側のwhileの前でテーブルBの前回値をチェックしてテーブルBを読むかどうか決めるべき。そうでなければ毎回(テーブルBに対しては)SQL文を発行して読み直す方がいいです。


というか普通は『SQL文を工夫して』書くケースだと思います。ひとつのSQL文で(テーブルAとテーブルBを結合させて)必要な情報が取得できるようにすべきです。

投稿日時 - 2012-03-14 16:47:04

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問