Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [php:mysql] Een goede randomizer (https://forum.scholieren.com/showthread.php?t=13340)

Triloxigen 13-02-2002 18:27

[php:mysql] Een goede randomizer
 
Hoe bouqw je een goede randomizer met php dat je kan gebruiken om random een regel uit te lezen in mySQL

Ik heb er een maar die is brak http://forum.scholieren.com/frown.gif

Kan iemand me helpen door een voorbeeld te geven, het idee van opbouw te vertellen of een randomizer te posten..

Chimera 13-02-2002 18:45

Je telt eerst het aantal records (count()), dan doe je een select * met een limit zodat je er een record uitpikt.

Maar nogmaals: Voor jouw site kun je beter geen random gebruiken, maar een ratio. Verder zou ik eerst aan het probleem dat mensen meerdere keren op zichzelf kunnen stemmen proberen op te lossen.

Unexplained 13-02-2002 18:45

http://www.php.net/manual/en/function.mt-rand.php

Ergo, RTFM.

Chimera 13-02-2002 18:59

Hij bedoelt: Hoe selecteer ik een random row uit een tabel. Neem aan dattie zelf wel in staat is de random functie in PHP te vinden.

Triloxigen 13-02-2002 19:06

Citaat:

Chimera schreef:
Hij bedoelt: Hoe selecteer ik een random row uit een tabel. Neem aan dattie zelf wel in staat is de random functie in PHP te vinden.

Triloxigen 13-02-2002 19:07

Citaat:

Chimera schreef:
Je telt eerst het aantal records (count()), dan doe je een select * met een limit zodat je er een record uitpikt.

Maar nogmaals: Voor jouw site kun je beter geen random gebruiken, maar een ratio. Verder zou ik eerst aan het probleem dat mensen meerdere keren op zichzelf kunnen stemmen proberen op te lossen.


ben ik ook mee bezig http://forum.scholieren.com/wink.gif

Doc 13-02-2002 19:26

In SQL heb je ook een RAND() commando...da's volgens mij vele malen eenvoudiger...dan al die loop functies http://forum.scholieren.com/biggrin.gif

Chimera 13-02-2002 19:50

Citaat:

Doc schreef:
In SQL heb je ook een RAND() commando...da's volgens mij vele malen eenvoudiger...dan al die loop functies http://forum.scholieren.com/biggrin.gif

Wie heeft het over loop-functies?

pietje63 13-02-2002 21:35

je kunt ook dit gebruiken:

select rand() from $tabel limit = 1
(zoiets)

Chimera 13-02-2002 21:54

Citaat:

pietje63 schreef:
je kunt ook dit gebruiken:

select rand() from $tabel limit = 1
(zoiets)

Je bedoelt dus SELECT * FROM tabel WHERE id=RAND() LIMIT 1.

Dit werkt niet, omdat je dan niet weet hoeveel ids er in de tabel zitten, en bovendien kunnen er gaten inzitten. Dit werkt beter.

Eerst:

SELECT COUNT(id) AS count FROM tabel;

Met die count doe je 't volgende:
$num = rand(1,$count);

SELECT * FROM tabel LIMIT $num, 1;

$num is een random offset, en je hebt er maar 1 nodig. LMD dus.

Triloxigen 13-02-2002 22:23

chimera, die jij nou geeft..
is dat een goed bruikbare dan?

Chimera 13-02-2002 22:32

Citaat:

McLaren schreef:
chimera, die jij nou geeft..
is dat een goed bruikbare dan?

Ja, anders had ik 'em niet gepost he http://forum.scholieren.com/biggrin.gif

Triloxigen 13-02-2002 22:37

Citaat:

Chimera schreef:
Ja, anders had ik 'em niet gepost he http://forum.scholieren.com/biggrin.gif


ok, vroeg me af of je post alleen tegen pet was bedoelt..
maar ok, zal die eens proberen...


Triloxigen 13-02-2002 22:51

Citaat:

Chimera schreef:
Ja, anders had ik 'em niet gepost he http://forum.scholieren.com/biggrin.gif


Hij werkt [das al een begin http://forum.scholieren.com/biggrin.gif]

alleen of ie het goed doetw ete ik niet

http://hot-or-not.tk

pietje63 14-02-2002 12:14

ok,even teruggezocht hoe ik het gedaan had
Code:

$result=mysql_query("select * ".
    "from $tabel ".
    "order by rand() limit 1");

gebruik ik voor www.afslagbrussel.tk om op de openingspagina elke keer een andere foto te zetten

Chimera 14-02-2002 12:15

Order by rand()? rand() levert een integer, en achter "order by" hoort een columnname te staan. Dat werkt dus niet, in ieder geval niet zoals jij hebt bedoelt hebt http://forum.scholieren.com/biggrin.gif

Chimera 14-02-2002 12:26

Damn, het werkt wel. Vaag http://forum.scholieren.com/biggrin.gif

pietje63 14-02-2002 13:19

Citaat:

Chimera schreef:
Damn, het werkt wel. Vaag http://forum.scholieren.com/biggrin.gif


dat bedoel ik http://forum.scholieren.com/biggrin.gif
volgens mij is dit een speciale mysql (dus niet php) functie

ik had de code ook een keer op dit forum gekregen, weet niet meer van wie...


volgens mij werkt het zo:
order bij rand() ==> hij zet alles in willekeurige volgorde
limit 1 ==> hij pakt alleen de bovenste record


Jon 14-02-2002 13:45

Citaat:

pietje63 schreef:
ik had de code ook een keer op dit forum gekregen, weet niet meer van wie...
Dat was ondergetekende http://forum.scholieren.com/smile.gif

Citaat:

volgens mij werkt het zo:
order bij rand() ==> hij zet alles in willekeurige volgorde
limit 1 ==> hij pakt alleen de bovenste record

Exact.

pietje63 14-02-2002 13:55

Citaat:

Jon schreef:
Exact.
o, ja nu zie ik het http://forum.scholieren.com/biggrin.gif
het het topic http://forum.scholieren.com/Forum12/HTML/007209.html even teruggezocht, misschien heb je er iets aan


Chimera 14-02-2002 14:04

Citaat:

pietje63 schreef:

volgens mij werkt het zo:
order bij rand() ==> hij zet alles in willekeurige volgorde
limit 1 ==> hij pakt alleen de bovenste record

Ik snap ook wel dat dat een MYSQL functie is, hij staat ook in de query. Kennelijk is ORDER BY RAND() een speciaal geval, want normaliter moet daar een kolomnaam staan.


Alle tijden zijn GMT +1. Het is nu 20:22.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.