Rand gebruiken..

  • Ik zit met een probleem.. Ik wil graag een paar velden een Random getal meegeven.


    V.b.


    PHP
    mysql_query("UPDATE `gebruikers` SET `contant`=`contant`+".rand(100,40000)." WHERE `rank` > '9'");


    Alleen nu krijgen dus alle gebruikers die hoger zitten als 9 hetzelfde bedrag erbij.. Hoe kan ik dat random maken ? Dus dat alle users een rand(100,40000) krijgen.. en dat dat niet allemaal hetzelfde getal word..

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Maak van

    PHP
    ".rand(100,40000)."


    eens

    PHP
    '".rand(100,40000)."'


    Edit: Oeps, wacht. Moment, zal het zo fixen


    PHP
    <?
    $query = mysql_query("SELECT * FROM `gebruikers` WHERE `rank` >= '9'");
    while($fetch = mysql_fetch_assoc($query))
    {
    mysql_query("UPDATE `gebruikers` SET `contant`=`contant`+'".rand(100,40000)."' WHERE `id` = '" . $fetch['id'] . "'");
    }
    ?>
  • Dan doe je toch iets verkeerd. Heb het namelijk even aangepast naar mijn DB:
    Klikkerdeklik

    PHP
    <?php
    
    
    include'inc.config.php';
    $query = mysql_query("SELECT * FROM `users`");
    while($fetch = mysql_fetch_assoc($query))
    {
        echo rand(100,40000) . "<br />";
    }
    ?>


    Uitkomst:


    Werkt volgens hetzelfde principe...

  • Denk dat ik het probleem al heb gevonden zal aan de query liggen.. want als ik hem dus in een echo zet zoals ik hem wil update dan doet ie het wel..Alleen de query niet .. dus die ga ik even nakijken

    Nieuwe reactie samengevoegd met originele reactie op 02.01.10 16:25:49:

    PHP
    $getBlaat = mysql_query("SELECT * FROM `gebruikers` WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(`online`) < 300 AND `rank` >'1'");
    while ($blaat = mysql_fetch_object($getBlaat))
    {
    	mysql_query("UPDATE `gebruikers` SET `contant`=`contant`+'".rand(100,40000)."' WHERE `rank`= > '9'");
    	
    }



    Nieuwe reactie samengevoegd met originele reactie op 02.01.10 16:28:54:
    probleem blijft dus nog steeds dat ie hetzelfde aantal contant geeft aan iedereen

  • Vind je het gek dat ie hetzelfde bedrag steeds aan iedereen geeft?
    Hij loopt alle leden na, geeft ALLE leden hetzelfde geld en stopt pas als ALLE leden (die eraan voldoen) het geld hebben gekregen van ALLE leden...

    PHP
    mysql_query("UPDATE `gebruikers` SET `contant`=`contant`+'".rand(100,40000)."' WHERE `rank`= > '9' AND `id` = '".$blaat['id'] . "'");


    Dan zou je dat moeten gebruiken, lijkt me, anders selecteert ie dus alle leden. (EDIT: voor de zekerheid: in de while)

  • Zet NOOIT een query in een while-lus, zonder daar eerst 2 dagen over na te hebben gedacht, overlegd te hebben met 16 collega's, en toestemming te hebben gevraagd aan je moeder.


    Query's horen bijna nooit een een lus thuis. Een goede oplossing is het in dit geval dan ook niet, want MySQL kent (uiteraard) zelf ook een rand functie. Het wordt dan:


    UPDATE gebruikers SET contant = contant + ROUND(RAND()*39900)+100 WHERE rank > 9

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!