Cookie (お気に入りの項目) を使用してクエリを作成しようとしています
<?php
$favnum=0;
$FavList = 'WHERE ';
foreach ($_COOKIE as $name => $value) {
if ($value == '1'){
if($name != 'PHPSESSID'){
$FavList .= 'num = "'.$name.'" OR ';
$favnum++;
}
}
}
$FavList = substr($FavList, 0,-3).' ';
$FavList = 'SELECT * FROM RETS '.$FavList;
?>
FavNum は多少冗長ですが、フォールバックできるお気に入りが 0 の場合に備えて、単にお気に入りの数をカウントしています。
クエリは次のようにエコーします。
SELECT * FROM RETS WHERE
num = "E2671855" OR
num = "E2659557" OR
num = "E2689932" OR
num = "E2670962" OR
num = "E2684630" OR
num = "E2677355"
ご覧のとおり、上記のコードはシリアル番号に対応する 6 つの数字です。このクエリをコピーして Navicat に直接貼り付けると、クエリは 6 つの結果を返します。
続き:
<?php
$sql = $FavList;
$results = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($results) or die(mysql_error());
while($row = mysql_fetch_array($results)){
echo 'Things that make me go Hmmm....<br/>';
} ?>
これにより、次のエコーが返されます。
Things that make me go Hmm....
Things that make me go Hmm....
Things that make me go Hmm....
Things that make me go Hmm....
Things that make me go Hmm....
ファイルには他の部分はありません。現在、クエリの php ファイルを取得し、トラブルシューティングのためにファイルのこの特定の部分にそれを削除しました...ご覧のとおり、5 つの結果しか得られません。クエリ エディターは 6 つの結果を取得しています。
それで、これが問題を絞り込むのに役立つかどうかわからないいくつかのテストを行いました...
while($row != mysql_fetch_array($results)) {echo '<script>alert(".$row['num'].")</script>';}
番号返してます。もちろんループ内です。永遠に止まることはありませんが、番号が戻ってきます...そして、はい...それは私が見逃しているものです。