SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 19.06.2005, 00:26:49
Fluppi Fluppi ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 7
Problem bei Schleife in Schleife

Ich habe ein Problem mit meiner While Schleife. Nach meinem Verständnis müßte es so eigentlich funktionieren. Leider aber nicht.

O.K. ich habe 2 Tabellen. In der einen stehen Autoren mit ihren Daten und in der anderen eine Liste von Kategorien.

Ich möchte nun überprüfen welche Bilder in den Verzeichnissen liegen. Die Verzeichnisstruktur ist immer gleich. die *.bmp liegen in der Struktur /(Land)/(name des autors). Die Namen der Bilder sind in jedem Verzeichnis auch gleich. Ich überprüfe also jedes einzelne Bild ob es vorhanden ist, und wenn ja, dann schreibe ich in die Tabelle der Autoren für dieses Bild eine 1.

Ich hoffe das ist einigermaßen verständlich.

In meinem Beispiel habe ich 3 Autoren.

PHP-Code:

$model
="_model_";
$x="_";
$e="e";

$sql "SELECT * FROM icon";
$result_autor mysql_query ($sql,$db) or mysql_die();

$sql "SELECT * FROM einheiten";
$result_einheit mysql_query ($sql,$db) or mysql_die();

while (
$autor=mysql_fetch_object($result_autor))
      {
      Echo 
"Für $autor->name und Land $autor->land_deutsch<br>";
      while(
$einheit=mysql_fetch_object($result_einheit))
          {
          
$datei_name="icons/$autor->abk/$autor->verzeichnis/$autor->abk$model$einheit->kennung$x$einheit->einheit_nr.bmp";

         if(
file_exists($datei_name))
              {
                 
$aendern "UPDATE icon SET $e$einheit->kennung$x$einheit->einheit_nr = 1 WHERE id = $autor->id";
                 echo 
$aendern;
                 
$update mysql_query($aendern);
                 
$aendern "UPDATE icon SET k$einheit->kennung = k$einheit->kennung+1 WHERE id = $autor->id";
                 echo 
$aendern;
                 
$update mysql_query($aendern);
                 }
          }

      } 
Um zu kontrollieren was die Schleife denn macht habe ich Echo Ausgaben eingesetzt.
Die Ausgabe sieht folgendermaßen aus: (Abgekürzt)

Für cpack und Land Deutschland

...
2
2
3
3
11
11
11
UPDATE icon SET e12_0 = 1 WHERE id = 1
UPDATE icon SET e12_1 = 1 WHERE id = 1
UPDATE icon SET e21_2 = 1 WHERE id = 1
28
29
Für fatherdagon und Land Kanada
Für cpack44 und Land Kanada

Prinzipiell funktioniert das ja auch so. Das Problem ist, das die innere Schleife nur ein mal ausgeführt wird und nicht für jeden Durchlauf der äußeren. Das die äußere 3 mal durchläuft, ist an der Ausgabe zu sehen.

Nach meinem Verständnis müßte doch die äußere mit dem 1. Datensatz anfangen. Das macht sie ja auch. Die Befehle werden abgearbeitet. Kommt dann zur 2. Schleife und arbeitet diese ab. Das macht sie hier ja auch. Dann beginnt die äußere mit dem 2.Datensatz. O.K., das macht sie auch. Aber jetzt wird die innere nicht mehr ausgeführt.

Warum nicht ?

Wäre für hilfe seeeeehr dankbar...
Mit Zitat antworten
  #2  
Alt 19.06.2005, 12:05:10
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Problem bei Schleife in Schleife

Die zweite Abfrage muss innerhalb der äußeren while-Schleife erfolgen, da ansonten der interne Zeiger nach dem ersten Durchlauf der äußeren Schleife auf dem letzten Datensatz der zweiten Abfrage steht und die innere while-Schleife somit nicht nochmal durchlaufen werden kann. So kannst du dann auch gleich die Abfrage durch eine WHERE-Klausel auf den Autor und das Land beschränken.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit einer Schleife? Da_Hero PHP Grundlagen 7 16.02.2005 17:24:25
schleife upload problem AlexB PHP Grundlagen 9 12.11.2004 08:07:40
tabellen problem in der while schleife Phil2505 PHP Grundlagen 4 19.04.2004 12:44:52
Problem mit Ausgabe von Daten in For- Schleife Sajya PHP für Fortgeschrittene und Experten 4 10.11.2002 14:25:24
Problem mit Schleife... DeMaephis PHP für Fortgeschrittene und Experten 1 29.05.2002 21:17:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:07:06 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt