MY SQLクエリの2つのランダムな行を示して1行のランダムでKEYWORD123ではなく、1つの
このクエリを検索し、結果をしかし、私は2つのランダムな行を表示したいです。 どうすればいいですか?
どのような解決策ですか?
how ??この
$行=は、mysql_fetch_array($ qを)使用して、それをつかん
イム。 if($行 < = 0){エコー '見つかりません'; } else {echo $ row ['tab']; }
MY SQLクエリの2つのランダムな行を示して1行のランダムでKEYWORD123ではなく、1つの
このクエリを検索し、結果をしかし、私は2つのランダムな行を表示したいです。 どうすればいいですか?
どのような解決策ですか?
how ??この
$行=は、mysql_fetch_array($ qを)使用して、それをつかん
イム。 if($行 < = 0){エコー '見つかりません'; } else {echo $ row ['tab']; }
このクエリは、複数の行を返します(複数の行がLIKE%$ key%であると仮定します)。 1つのレコードだけが表示されている場合は、結果セットを循環させるのではなく、PHPコードのスタックから一番上の応答を取り出すことが可能です。
2レコードへの応答を制限するには、クエリの最後にLIMIT 2
を追加します。それ以外の場合は、LIKE
演算子に一致するすべての行が表示されます。
//Build Our Query
$sql = sprintf("SELECT tab
FROM ads
WHERE keyword LIKE '%s'
ORDER BY RAND()
LIMIT 2", ('%'.$key.'%'));
// Load results of query up into a variable
$results = mysql_query($sql);
// Cycle through each returned record
while ($row = mysql_fetch_array($result)) {
// do something with $row
echo $row['tab'];
}
while-loop
は返される行につき1回実行されます。実行されるたびに、$row
の配列はアクセスされている現在のレコードを表します。上記の例では、dbテーブル内のtab
フィールドに格納されている値をエコーします。
ご注文を削除してからLIMITを追加してください。2
これはSQLの実行後に発生します。
は今、あなたはこのクエリは、$キーを含むすべて行を返します
を助け
$q = mysql_query("SELECT * FROM ads WHERE keywords LIKE '%$key%' ORDER BY RAND() LIMIT 2");
$res = mysql_query($q);
while($r = mysql_fetch_array($res)){
echo "<br>" . $r['keywords'];
}
希望何をする必要があるか
$res = mysql_query($q);
$r = mysql_fetch_array($res);
echo $r['keywords'];
ようなものをやっている必要があります。今のところ1つしか返ってこないのならば、これは単に偶然によるものです。
あなたのクエリにLIMIT句を追加したい、CF http://dev.mysql.com/doc/refman/5.0/en/select.html
ところで、両方のLIKE「%...とRAND(BY ORDER)は、パフォーマンスキラー
です