Maak een array, shuffle hem, tel het aantal records, pak 1 random getal binnen het aantal, pak de gegevens uit de array. Dubbel random dus!
?
Onbekende gebruiker
26-01-2006 16:39
Ik heb wel een server die alleen PHP ondersteund.
<?php
$alfabet = range(a, z);
shuffle($alfabet);
while (list(, $letter) = each($alfabet)) {
echo $letter.', ';
}
$willekeurig = mt_rand(0,25);
echo '<br>Winnaar is de letter '.$alfabet[$willekeurig];
?>
Levert op:
http://test.i-cey.net/voorbeeld16.php
Of het helemaal correct is durf ik niet te zeggen (lossepols werk), maar het is de goede richting op.
<?php
$rand = rand(1, 500);
if($rand==1){
echo "Je hebt gewonnen!";
}
?>
Zou dat niet wat makkelijker zijn?
Of is het minder betrouwbaar?
?
Onbekende gebruiker
26-01-2006 19:10
Er staat gewoon Winnaar is leter f :s
Ja, ik heb een array gemaakt met a t/m z... logisch dat er dan iets uitkomt tussen de a en de z lijkt mij...
Hipska BE
26-01-2006 20:07
gewijzigd op 26-01-2006 20:22
als je iets doet met een aantal ingeschreven leden (of iets dergelijks)
Net als bij een echte loterij is er niet altijd een winnaar
<?php
include('connect.php');
$result = mysql_query("SELECT id, naam FROM leden WHERE loterijdeelname = '1' ");
$deelnemers = mysql_num_rows($result); //aantal deelnemers zoeken
$rate = '500'; //winstverhouding
$max = $deelnemers * $rate; //winstverhouding verrekenen
$winnaar = rand(1, $max); //winnaar maken
$id = mysql_result($result, $winnaar, 0);
$naam = mysql_result($result, $winnaar, 1);
if(is_numeric($id)){
echo 'De winnaar is <a href="profiel.php?id='.$id.'">'.$naam.'</a>. Proficiat!';
}else{
echo 'Sorry, er is deze keer geen winnaar. Volgende keer beter.';
}
//debug:
//echo '<p>winnend lot: <b>'.$winnaar.'</b></p>';
?>