Zufallszahl in schleife aber nach bestimmter zeit

Anacondi

Erfahrenes Mitglied
Hallo an alle. ha be da ein problem mit Zufallszahlen. so wie das script jetzt ist, durchläuft er das programm zwar ein paar mal, so wie die $zanzahl es vorgibz, aber in die datenbank wird immer nur die letzte zahl geschrieben.
ich finde einfach den fehler nicht,
ausserdem wollte ich es so haben, das die durchläufe immer nach 2-3 secunden erst ablaufen.
PHP:
      <div id="betteln">
<?php
$i = 0;
$zahlen[] = array();
$zgeld = 0;
$zanzahl = rand(1,5) ;

while ($i < $zanzahl)
{

     $zgeld = rand(10,99) ;
     $geldgesammt = $data["dmark"] + $zgeld; 
     	
    if(!in_array($zgeld,$zahlen, $geldgesammt))
    {
    	
        $zahlen[$i] = $zgeld ;
        
$aendern = "UPDATE login Set dmark = '$geldgesammt' WHERE id = '$id'";
      $update = mysql_query("UPDATE login Set dmark = '$geldgesammt' WHERE id = '$id'");
        
      $i++;
    } 
   
}


for ($i = 0; $i < $zanzahl; $i++)
{

   ?>
   Du hast
   
   <?php echo $zahlen[$i]."" ;?>
    bekommen- gesammt sind das
    <?php
    echo $geldgesammt."<br>";
      $aendern = "UPDATE login Set dmark = '$geldgesammt' WHERE id = '$id'";
      $update = mysql_query("UPDATE login Set dmark = '$geldgesammt' WHERE id = '$id'");	
}

?>
</div>

kann man denn in eine schleife noch eine schleife einbauen?
 
Zuletzt bearbeitet:
Die folgene Zeile ist falsch.
PHP:
in_array($zgeld,$zahlen, $geldgesammt)
Lies mal die Doku zu in_array() durch
 
Du hast doch als Bedingung für die Update Anweisung die Variable $id. Da sich diese im Skript nicht verändert, wird immer der gleiche Datensatz geändert.

Außerdem führst du 2 mal die gleiche Update Anweisung aus. Einmal in der WHILE Schleife und einmal in der FOR Schleife.
 
Zuletzt bearbeitet:
Nicht $i sondern $id

PHP:
$aendern = "UPDATE login Set dmark = '$geldgesammt' WHERE id = '$id'";

Da oben ist die SQL-Anweisung die du immer ausführst und da ist $id der Parameter der steuert welcher Datensatz geändert wird.

Da sich bei dir aber der Inhalt von $id im obigen Code nirgends verändert wird immer wieder der gleiche Datensatz genommen. Zum Beispiel so:

PHP:
$aendern = "UPDATE login Set dmark = 22 WHERE id = 'ABC0815'";


Oder habe ich einen Denkfehler und du einen anderen Fehler im Code.

Wenn es richtig ist das immer die selbe ID genommen wird, dann musst du bei jedem Durchlauf den zuletzt gespeicherten Wert wieder aus der DB auslesen.

Für diesen Fall wäre es aber eh besser die Summe erst zu bilden und dann den "engültigen" Endbetrag zu schreiben.
 
Zuletzt bearbeitet:
Danke erst mal. und ja, es soll immer der gleiche user beschenkt werden, also gleiche $id.
Das ist ja mein problem, das ich es nicht hinbekomme, die summe anzeigen zu lassen.
 
Achich glaube jetzt habe ich es auch verstanden. Du willst am Ende also die Summe des Arrays $zahlen?

PHP:
<?php echo array_sum($zahlen); ?>
 
Zurück