[ jsokcevi @ 03.04.2005. 12:01 ] @
Pravim kviz i imam jedan problemčić. Za odabir pitanja koristim rand(1, [broj redova]). Problem nastupa kada odabiram pitanje:
Code:
$sql =("SELECT * FROM kviz WHERE ID = '". [broj redova] ."' ");

ID-ovi mi moraju biti poredani od 1 do [broj redova] i moraju biti uzastopni.
Jeli moguće da mi ID-ovi ne moraju biti uzastopni tako da koristim da mi se prikaže X red u bazi ili nešto drugo?
[ Ilija Studen @ 03.04.2005. 14:11 ] @
Dva načina: ili da izvučeš sve pa da preindeksiraš ili da proveravaš da li ID postoji. Moj predlog je ovo drugo rešenje.

Imaš recimo nešto ovako:

Code:
function row_exists($id) {
  $sql = "SELECT count(*) AS `row_count` FROM `table` WHERE `id` = '$id'";
  if($result = mysql_query($sql, $link)) {
    $row = mysql_fetch_assoc($result);
    return (boolean) $row['row_count'];
  }
  return false;
}

...........

while(!row_exists( $id = rand(0, 400) )) {
  // Do nothing...
}

// I onda ide tvoj kod... Koristis $id promenljivu


Probaj, kucano je iz glave i sve izmene bi trebalo da budu varijacija na temu. Poz

PS: Nije baš najelegantije rešenje, ali malo ga prilagodi da bude lepo. Ovo je sve na brzinu pošto žurim ;)
[ broker @ 04.04.2005. 00:20 ] @
Probaj

SELECT * FROM table LIMIT RAND(n), 1