11. december 2000 - 20:20
Der er
6 kommentarer og 1 løsning
random forbundet med mysql
Jeg prøver at lave en ting der kan finde en random adresse fra en af mine tables i MySsql databasen og derefter sætte det ind i en anden table! Anvendte tables og felter : TABLE konkurrence id, navn, gade, postnr TABLE vinder navn, gade, postnr Jeg synes da at det ser meget rigtigt ud, men jeg synes ikke det virker! Jeg bruger scriptet herunder: $query = mysql_query (\"SELECT * FROM konkurrence\"); $antal_deltagere = mysql_num_rows($query); $random_deltager = rand(0,$antal_deltagere); $query = mysql_query(\"SELECT * FROM konkurrence WHERE id=\'$id\'\"); $deltager_navn = mysql_result($query,0,\"navn\"); $deltager_gade = mysql_result($query,0,\"gade\"); $deltager_postnr = mysql_result($query,0,\"postnr\"); mysql_query(\"INSERT INTO vinder VALUES (\'$deltager_navn\',\'$deltager_gade\',\'$deltager_postnr\')\"); **** Hvad er det jeg gør galt ? //Shady
Annonceindlæg fra Deloitte
11. december 2000 - 20:22
#1
du mangler srand() tjek manualen for hjælp om den...
11. december 2000 - 20:34
#2
Jaehh... *hehe* Skal den bare sættes et tilfældigt sted ? Jeg får også de her fejl når scriptet kører : Warning: Unable to jump to row 0 on MySQL result index 3 in /blah/blah/www.blah.dk/kon_admin.php on line 24 Warning: Unable to jump to row 0 on MySQL result index 3 in /blah/blah/www.blah.dk/kon_admin.php on line 25 Warning: Unable to jump to row 0 on MySQL result index 3 in /blah/blah/www.blah.dk/kon_admin.php on line 26
jd
Nybegynder
11. december 2000 - 21:15
#3
Du skal have \"srand ((double) microtime() * 1000000);\" lige over $random_deltager... Men din kræver jo mange ressourcer, da du først henter alt indhold fra tabellen ud, og derefter vælger en tilfældig... Hvorfor ikke bare select *,((id*0)+rand()) as random from din_tabel order by random limit 1 ? Eller hvis du benytter den nyeste version af mysql select * from din_tabel order by rand() limit 0,1 /Jon@z
12. december 2000 - 09:22
#4
Jonaz Jeg har kigget på dit svar, men jeg synes ikke jeg fik noget ud af det... Jeg skrev : $query = mysql_query (\"select *,((id*0)+rand()) as random from konkurrence order by random limit 1\"); $antal_deltagere = mysql_num_rows($query); $query = mysql_query(\"SELECT * FROM konkurrence WHERE id=\'$id\'\"); $deltager_navn = mysql_result($query,0,\"navn\"); $deltager_gade = mysql_result($query,0,\"gade\"); $deltager_postnr = mysql_result($query,0,\"postnr\"); mysql_query(\"INSERT INTO vinder VALUES (\'$deltager_navn\',\'$deltager_gade\',\'$deltager_postnr\')\"); men det virkede ikke... //Shady
jd
Nybegynder
12. december 2000 - 16:55
#5
Det query jeg postede, er såmænd meget smartere... Det kan gøres så let:: $query = mysql_query (\"select *,((id*0)+rand()) as random from konkurrence order by random limit 1\"); //$antal_deltagere = mysql_num_rows($query); $deltager_navn = mysql_result($query,0,\"navn\"); $deltager_gade = mysql_result($query,0,\"gade\"); $deltager_postnr = mysql_result($query,0,\"postnr\"); mysql_query(\"INSERT INTO vinder VALUES (\'$deltager_navn\',\'$deltager_gade\',\'$deltager_postnr\')\"); Jeg har udkommenteret $antal_deltagere, da den ikke vil indeholde antallet af deltagere... Hvis du skal bruge antal af deltagere til noget, skriv da lige igen... /Jon@z
12. december 2000 - 18:58
#6
Jonaz Mange tak for dit svar, nu virker det sørme! :) //Shady
jd
Nybegynder
12. december 2000 - 21:18
#7
np
Vi tilbyder markedets bedste kurser inden for webudvikling