2011-10-30 16 views
0

私はPHP/MySQLを完全に新しくしていますので、私と一緒に裸です。私はプログラミングの背景があります。PHP:クエリを繰り返す

IDの乱数を入力してテーブルを検索し、成功するには指定されたタグと一致する必要があります。これまでのところ、私は持っています:

$query = "SELECT * FROM web_db WHERE P_Id = " . $random; 
$result = mysql_query($query); 
if($result) { 
while($row = mysql_fetch_array($result)){ 

    $name = $row[$id]; 
    echo 'ID:' . $name . '<br>'; 
    $name = $row[$url]; 
    echo 'URL: ' . $name . '<br>'; 
    $name = $row[$tag]; 
    echo 'Tag:' . $name . '<p>'; 
} 
} 

これは、任意のタグを1つ持ちます。タグが指定された値と一致するまで、どのように繰り返すことができますか?

+0

'P_id'が一意のフィールドである限り、実行しているクエリの種類は常に1つのエントリを返します。正しいクエリーが得られるまで別のIDを探すために、そのクエリーをループの中に書くべきです。私はあなたをよく理解していれば、これは道になるはずです。 –

+0

テーブルの構造はどうですか?それについていくつかの例を挙げてください。 – onatm

答えて

3

あなたはしていません。 SELECTステートメントは、それに続く条件に一致するものをすべて返します。あなたがP_Idを無視し、特定のタグエントリを照会したいのであれば、これを行うには、クエリを使用したタグに一致する最初の結果を返しながら、この場合は

$query = "SELECT * FROM web_db WHERE tag = '".$tag."' ORDER BY RAND() LIMIT 1"; 

RAND()は、ランダムにリストを注文します。 whileループを抜ける

$result = mysql_query($query); 
if(count($result) > 0) { 
    while($row = mysql_fetch_array($result)) { 
    echo 'ID:' . $row['id'] . '<br>'; 
    echo 'URL: ' . $row['url'] . '<br>'; 
    echo 'Tag:' . $row['tag'] . '<p>'; 
    } 
} else { 
    echo 'no entries found'; 
} 
+0

ありがとう、クリーンアップにも感謝! – Chris

0
if("sometag" === $name) break; 

。終了した後、再度チェックして、タグが見つかったかどうかを確認してください。

関連する問題