Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] While Schleife durchläuft nicht alle Einträge der Datenbank (https://www.gegen-bilderklau.net/thread.php?threadid=114067)


Geschrieben von janinchen am 26.07.2007 um 19:43:

  While Schleife durchläuft nicht alle Einträge der Datenbank

Sooo, ich mal wieder Augenzwinkern

Ich hab mir grad ein Script gebastelt, das ich nur am Ende des Monats aufrufen muss und die größten Eintragungen automatisch gemacht werden.
So z.B. das automatische Löschen aller Teilnehmer der Gewinnspiele, aber auch das automatische Abbuchen der Miete und den Stallkosten.
Genau hier liegt das Problem:

Es soll aus der Tabelle für die Mitglieder die Wohnung ausgelesen werden, der Preis für diese dann aus einer anderen Tabelle.
Soweit alles kein Problem. Das neue Schreiben des Kontostands usw. auch nicht.
Das einzige Problem ist, dass in der While-Schleife nur einmal aus der mitgliedertabelle ausgelesen wird und nicht für JEDES Mitglied.

Mein Script:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
include ('...');
      
      $select4 "SELECT Username, Wohnung FROM mitglieder";
      $selecting4 mysql_query($select4);
      
       while ($row mysql_fetch_assoc($selecting4)) { 
       
       
         $name $row[Username];
         $wohnung $row[Wohnung];
         
         
       include ('...');
         $select4 "SELECT Name, Preis FROM wohnungen WHERE Name='$wohnung'";
         $selecting4 mysql_query($select4);
      
       while ($row mysql_fetch_assoc($selecting4)) { 
       
         $preis $row[Preis] ;

         }
         
         
         
         $neukontostand $kontostand $preis;   
        
        
       include ('...');
   
       $update2 "UPDATE mitglieder SET `Konto` = '$neukontostand'";
       $updating2 mysql_query($update2);
       
       
        include ('...');
       
        $insert3 "INSERT INTO `kontoauszuege` ( `Name`, `Datum`, `Betrag` , `Grund` , `Von`)
      VALUES ('$name', NOW(), '$preis', '<b>Miete<b> $wohnung', 'Bank')";
        $inserting3 mysql_query($insert3);
   
     
         
         }
        mysql_close();



Mit was kann das zusammenhängen? Ich weiß, ich bin doof smile



Geschrieben von janinchen am 27.07.2007 um 12:41:

 

Zitat:
Original von Epona
he du!


$name = $row[Username];

eine Variable hat doch immer nur ein Wert. In dem row sind aber mehrere Werte drinne, deswegen wird immer nur der letzte Wert reingespeichert. Wenn du jetzt aber nen . vorm = schreibst dann hättest du zwar alle Werte drinne aber dann würdest du bei dem WHERE alle diese werte hintereinander abfragen.. also wehere wohnung 1 wohnung 2 und das is ja nicht Sinn und Zweck der Sache ^^



Klar, das mit der Variablen ist logisch, bin ich doof. Augen rollen
Was bewirkt denn der Punkt genau? Dass alle ausgelesenen Werte gespeichert werden können? Aber wie du geschrieben hast, gibts dann ein Problem mit dem WHERE böse
Aber ist es nicht so, dass alles, was in der While- Klammer des (vom SELECT FROM mitglieder) steht, nacheinander durchlaufen wird und dann erst wieder von neuem beginnt?
Also mit einfach einem Punkt vor dem = tut sich gar nix, wär ja auch gelacht Augenzwinkern

Mhh... vllt. sollte ich mit einem Array arbeiten *grübel*


Weiß noch jemand was?


Forensoftware: Burning Board, entwickelt von WoltLab GmbH