Christoph Jeschke: Problem beim Losen mit shuffle()

Beitrag lesen

Guten Tag,

Wie bekomme ich das hin?

ChrisB hat zwar alles relevante gesagt, aber ich möchte dir trotzdem noch mal ein paar Hinweise geben:

$zufall = array();
     $abfrage = "SELECT Pferd FROM TWSP WHERE Prufung = 'T1P1'";
   $result = mysql_query($abfrage);
     while ($row = mysql_fetch_assoc($result)){
     foreach ($row AS $teilnehmer){
     $zufall[] = $teilnehmer;
     }
     }
     if (($datum>=$turnierdatum) AND ($zeit>=$turnierzeit)){
     shuffle($zufall);
     foreach ($zufall AS $teilnehmer){
     echo "$teilnehmer<br>";
     }
     }

  
Nun hast du in $teilnehmer einen einzige Wert stehen. Du willst ja aber das randomisierte Ergebnis speichern, das findest du im Array $zufall.  
  
Nach der Ausgabe der einzelnen Ergebnisse (foreach, $teilnehmer) speicherst du den Inhalt von $zufall in einer Textdatei. Das kannst du mit [file_put_contents()](http://de.php.net/manual/en/function.file-put-contents.php) sehr bequem. Du kannst die Daten [serialisieren](http://de2.php.net/serialize). Später dann kannst du die Daten mit [file_get_contents()](http://de3.php.net/file_get_contents) wieder einlesen und wieder [deserialisieren](http://de2.php.net/unserialize). Die Verarbeitung erfolgt dann analog zur Ausgabe in der foreach-Schleife.  
  

> Zweites Problem ist, dass ich das feststehende Ergebnis aus der Siegerliste ebenfalls automatisch in eine Textdatei schreiben möchte. Allerdings wird, wenn ich das $teilnehmer versuche in besagte Datei zu schreiben anstatt aller Einträge nur einer geschrieben. Wie kann ich das ändern?  
  

> ~~~php
  

> $datei = fopen("addition.txt","w");  
>   
> fputs($datei, $teilnehmer);  
> fclose($datei);  
> 

GleichesProblemtritt auch auf, wenn ich folgenden Code verwende:

$datei = fopen("addition.txt","w");
$inhalt = $teilnehmer;

fputs($datei, $inhalt);
fclose($datei);

  
Prinzipiell ist der Code korrekt (auch wenn einige Prüfungen fehlen), aber du speicherst mit $teilnehmer nur den letzten Wert im Array ab, da in der foreach-Schleife diese Variable jeweils mit dem letzten Wert von $zufall belegt wird - der letzte bleibt übrig.  
  
Aber ich möchte noch mal auf deine Antworten gegenüber ChrisB eingehen:  
Das hiesige Forum ist keine Auskunftsstelle, sondern eine Diskussionsplattform, auch wenn IMO eben diese Diskussionen deutlich unterrepräsentiert sind und Supportanfragen überwiegen. Deine Belehrungen, wie sich die Supportroboter hier gefälligst zu benehmen und zu funktionieren haben, lassen dich als unverschämten Kunden erscheinen. Überlege dir bitte selbst, ob du so einen Eindruck erwecken möchtest. Vielleicht helfen dir auch die [Tipps für Fragende](http://forum.de.selfhtml.org/hilfe/charta.htm#tipps-fuer-fragende).  
  
Gruß  
Christoph Jeschke

-- 
Zend Certified Engineer  
Certified Urchin Admin