ntec Skrevet 12. september 2006 Del Skrevet 12. september 2006 Hvordan velger jeg en random rad fra en database? Lenke til kommentar
Gjest Slettet+142 Skrevet 12. september 2006 Del 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 Lenke til kommentar
endrebjo Skrevet 12. september 2006 Del 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); ?> Lenke til kommentar
ntec Skrevet 12. september 2006 Forfatter Del Skrevet 12. september 2006 hjertelig takk:) Lenke til kommentar
CruellaDeVille Skrevet 13. september 2006 Del 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? Lenke til kommentar
endrebjo Skrevet 13. september 2006 Del 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å? Lenke til kommentar
CruellaDeVille Skrevet 13. september 2006 Del Skrevet 13. september 2006 (endret) [dobbeltposting] Endret 13. september 2006 av CruellaDeVille Lenke til kommentar
CruellaDeVille Skrevet 13. september 2006 Del 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* Lenke til kommentar
vidarlo Skrevet 13. september 2006 Del 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. Lenke til kommentar
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å