Search code examples
phpmysqldatabaseserver-side

Repeating a query


I want to search a table by inputing a random number for the ID, and for it to be successful, it has to match the specified tag. So far I have:

$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>';
}
}

This brings up one entry, any tag. How can I have it repeat until Tag matches a specified value?


Solution

  • You don't. SELECT statement returns everything that matches the followed conditions. So, if you want to query for a specific tag entry disregarding the P_Id, do this :

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

    RAND() in this case will order the list randomly, while the query returns the first result that matches the tag used.

    $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';
    }