ntec Skrevet 12. september 2006 Skrevet 12. september 2006 Hvordan velger jeg en random rad fra en database?
Gjest Slettet+142 Skrevet 12. september 2006 Skrevet 12. september 2006 (endret) $sql = "SELECT COUNT(<rad_med_id>) AS antall FROM tabell"; $result = mysql_query($sql); $resultat = mysql_fetch_assoc($result); $antall = $resultat['antall']; $tall = rand(1, $antall); $nysql = "SELECT * FROM tabell WHERE <rad_med_id>='$tall'"; $ny_result = mysql_query($nysql); osv... osv... det finnes nok lettere metoder, men eg ville gjort det sånn som dette Endret 12. september 2006 av Slettet+142
endrebjo Skrevet 12. september 2006 Skrevet 12. september 2006 <?php // Kjør spørring $get_data = mysql_query('SELECT * FROM tabell'); // Tell rader $num_rows = mysql_num_rows($get_data) - 1; // Vilkårlig rad $row = rand(0, $num_rows); // Flytt peker til raden mysql_data_seek($get_data, $row); // Hent ut data $data = mysql_fetch_assoc($get_data); ?>
CruellaDeVille Skrevet 13. september 2006 Skrevet 13. september 2006 <?php // Kjør spørring $get_data = mysql_query('SELECT * FROM tabell'); // Tell rader $num_rows = mysql_num_rows($get_data) - 1; // Vilkårlig rad $row = rand(0, $num_rows); // Flytt peker til raden mysql_data_seek($get_data, $row); // Hent ut data $data = mysql_fetch_assoc($get_data); ?> 6850660[/snapback] Jeg har noe innvendinger/spørsmål her. I mitt lille, blonde hode fungerer denne løsningen bare hvis det aldri er slettet noen rader, eksempelvis kan jeg ha en database med data på id 1, 5, 3, 7, 19 og 41. Da vil mysql_num_rows rreturnere 5 her, og når du da kjører rand mellom 0 og 5 vil kun radene 1,3 og 5 være mulig å hente ut. eller hur?
endrebjo Skrevet 13. september 2006 Skrevet 13. september 2006 mysql_num_rows() teller antall returnerte rader uavhengig av id eller andre kolonner. Eller var det noe annet du tenkte på?
CruellaDeVille Skrevet 13. september 2006 Skrevet 13. september 2006 (endret) [dobbeltposting] Endret 13. september 2006 av CruellaDeVille
CruellaDeVille Skrevet 13. september 2006 Skrevet 13. september 2006 mysql_num_rows() teller antall returnerte rader uavhengig av id eller andre kolonner.Eller var det noe annet du tenkte på? 6856135[/snapback] Næ, bare en kortslutning i min hjerne It is so crystal clear now. "gi meg rad nummer 4 av resultatsettet" vs "gi meg entitet med id 4" *blondine*
vidarlo Skrevet 13. september 2006 Skrevet 13. september 2006 SELECT * FROM `foo` ORDER BY RAND() LIMIT 0,1 vil plukke en tilfeldig rad. Den fungerer uansett om ting ligger sekvensielt eller ikkje, og er bare en query.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå