Hej,
Jag har ett script som använder sig av mysql-databas. Jag skulle vilja veta koden för hur man gör så att scriptet tar en random rad ut databasen som har värde som är mer än 0 i kolumnenen ID
------------------
//Mikael
5 svar · 198 visningar · startad av mikaeled
Hej,
Jag har ett script som använder sig av mysql-databas. Jag skulle vilja veta koden för hur man gör så att scriptet tar en random rad ut databasen som har värde som är mer än 0 i kolumnenen ID
------------------
//Mikael
$res = mysql_query("SELECT COUNT(id) AS cnt FROM tabellen");
$max=mysql_result($res,0,"cnt");
mt_srand((double)microtime()*10000000);
if ($max>1) {
$pick = mt_rand(1,$max);
} else {
$pick = 1;
}
$res = mysql_query("SELECT * FROM tabellen where id=$pick");
------------------
woodi
Svenska FF1
www.johan-skog.nu
[Redigerat av woodi den 07 jan 2001]
Annars skall det enligt manualen gå att fixa direkt i MySQL, om man kör version 3.23 eller senare (har inte haft tid att uppgradera, så jag har inte kunnat testa detta):
SELECT * FROM tabellen WHERE id > 0 ORDER BY RAND() LIMIT 1;
------------------
Robban < robban@lipogram.com >
Robban
Javisst tusan, det hade jag förträngt! Tack för påminnelsen!
------------------
woodi
Svenska FF1
www.johan-skog.nu
men om jag vill skriva ut ett kolumns värde i just den här raden.
Hur gör jag det?
------------------
//Mikael
Om du följer woodis val av variabelnamn ovan, och använder:
$res = mysql_query("SELECT * FROM tabellen WHERE id > 0 ORDER BY RAND() LIMIT 1");
(Detta fungerar som sagt bara med version 3.23 eller senare - har du en tidigare version av MySQL får du köra med woodis exempel ovan)
Så skall du kunna plocka ut en kolumn med:
$row = mysql_fetch_array($res);
echo $row["kolumnnamn"];
mysql_free_result($res);
Återigen - har inte testat om det fungerar.
------------------
Robban < robban@lipogram.com >
[Redigerat av Robban den 07 jan 2001]