1 2 3 4 5 6 7 8 9 10 | <?php $query="select * from tabel;"; $result=pg_query($db,$query); $lijst=pg_fetch_all($result); $randomlijst=array_rand($lijst,count($lijst)); foreach($randomlijst as $randomitem) { //doe iets met $lijst[$randomitem]; } ?> |
Waarom randomizen ? De enige eis is dat elk getal 1 keer gebruikt mag worden en het niet hetzelfde mag zijn als het record nummer.quote:Op zaterdag 22 oktober 2005 02:22 schreef Mappy het volgende:
Dat werkt niet rezjeh.
Als je echt wilt doen wat jzzpr vraagt, moet je een lijst van 1-10 randomizen en dan kijken of nergens geldt dat $lijst[n]==n. Indien wel, opnieuw beginnen. Kan natuurlijk, maar het lijkt me zo'n lelijke oplossing voor iets
En daarnaast moet je nog controleren of je niet van 2 -> 4 -> 2 -> 4 -> 2 gaat oid
quote:Op zaterdag 22 oktober 2005 02:27 schreef gelly het volgende:
Waarom randomizen ? De enige eis is dat elk getal 1 keer gebruikt mag worden en het niet hetzelfde mag zijn als het record nummer.
Anders had ik ook wel voorgesteld om gewoon i+1 te nemenquote:jzzpr
Hoe kan ik dit met PHP helamaal random laten gebeuren?
Ik begrijp eruit dat de TS denkt de getallen random toe te moeten wijzen terwijl dat m.i. helemaal niet nodig is.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <? $ar = array(); for( $i = 1; $i <= 10; $i++ ) { array_push( $ar, $i ); } for( $i = 1; $i <= 10; $i++ ) { $j = array_rand( $ar ); unset( $ar[$j - 1] ); $sql = "UPDATE tabel SET veld = '$j' WHERE id = '$i'"; mysql_query( $sql ); } ?> |
Ik begreep eruit dattie ze random wil doorlopen en die volgorde kennelijk op wil slaan, maar ik wacht nog even op zijn uitleg...quote:Op zaterdag 22 oktober 2005 02:30 schreef gelly het volgende:
Ik begrijp eruit dat de TS denkt de getallen random toe te moeten wijzen terwijl dat m.i. helemaal niet nodig is.
Als het random moet is deze manier het beste idd.quote:Op zaterdag 22 oktober 2005 02:32 schreef rezjeh het volgende:
[ code verwijderd ]
ik zat met een dom hersenkronkel, dit bedoelde ik
gewoon oplopende array maken, daarna random cijfer uit die array, de inhoud ervan gebruiken om de table te updaten, daarna uit de array verwijderen. zo gebruik je niet 2 keer hetzelfde cijfer
En daarnaast voldoet het ook mogelijk niet aan:quote:Op zaterdag 22 oktober 2005 02:22 schreef Mappy het volgende:
En daarnaast moet je nog controleren of je niet van 2 -> 4 -> 2 -> 4 -> 2 gaat oid
quote:jzzpr
het nummer mag niet hetzelfde zijn als het ID van de record.
dan doe je een while loopje met als $i == $j nog een keer proberen enzo, TS kan toch zelf ook wel wat doenquote:Op zaterdag 22 oktober 2005 02:34 schreef Mappy het volgende:
Dat werkt niet als hij de array wil doorlopen via deze variabele... Maar ik heb dus geen idee of jzzpr dat wil...
Want:
[..]
En daarnaast voldoet het ook mogelijk niet aan:
[..]
1 2 3 4 5 6 7 8 9 | $lijst=array(); for($i=1;$i++;$i<=$aantal)$lijst[]=$i; shuffle($lijst); for($i=0;$i++;$i<$aantal) { $query="update tabel set nummer=".$lijst[($i+1)%$aantal]." where id=".$lijst[$i].";"; $result=pg_query($db,$query); } |
Volgens mij pakt Array_rand willekeurige waarden uit een array, dus geen unieke waarden ?quote:Op zaterdag 22 oktober 2005 03:10 schreef Mappy het volgende:
Dit zou wel werken voor jzzpr z'n probleem, maar hij reageert niet erg![]()
[ code verwijderd ]
(en de php-tag doet 't niet goed, dus maar even tussen gewone code-tags)
In elk geval een mooie oplossing gevonden voor jzzpr z'n probleem
Dan doen we 't met shuffle(). Zie bovenquote:Op zaterdag 22 oktober 2005 03:31 schreef gelly het volgende:
Volgens mij pakt Array_rand willekeurige waarden uit een array, dus geen unieke waarden ?
$lijst[($i+1)\$aantal]quote:Op zaterdag 22 oktober 2005 03:39 schreef Mappy het volgende:
[..]
Dan doen we 't met shuffle(). Zie boven
Je kent de modulo-operator niet? Da's een "%".quote:
Je haalt PHP en VB door elkaar.quote:Op zaterdag 22 oktober 2005 10:24 schreef Mappy het volgende:
[..]
Je kent de modulo-operator niet? Da's een "\".
Het hoeft niet allemaal speciaal in één topicquote:Op zaterdag 22 oktober 2005 03:26 schreef JeRa het volgende:
*kuch*
[PHP/(My)SQL] voor dummies - Deel 14
Juist voor dit soort dingen is er bovenstaand topic
En ik programmeer niet eens in VBquote:Op zaterdag 22 oktober 2005 11:25 schreef SuperRembo het volgende:
Je haalt PHP en VB door elkaar.
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |