Fehler in MySQL Abfrage mit PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler in MySQL Abfrage mit PHP

    Hey, irgendwie schein ich blind zu sein, aber ich finde einfach den Fehler in nachfolgendem Code nicht. Die Fehlermeldung besagt "Parse error: parse error, unexpected $" und als Zeile wird die letzte der Seite genannt.

    PHP-Code:
    <?php $sql 'SELECT vereinsname FROM mannschaften'
             
    $result mysql_query ($sql);
             
    $vereine mysql_fetch_assoc($result); 
                                     
             for (
    $i 0$i count($vereine); $i++)
             {
                echo 
    '<table width=\"100%\" border=\"0\"><tr><td><div align=\"right\">'.$i.'.</div></td>
                        <td><label><select name=\"platz_"'
    .$i.'\" class=\"pulldown\">
                        <option value=\"\" selected=\"selected\"></option>'


                while(
    $array mysql_fetch_assoc($result)) 
                { 
                     echo 
    '<option value="'.$array['vereinsname'].'">'.$array['vereinsname'].'</option>'
                } 
                echo 
    '</select></label></td></tr></table>'?>
    Hoffe es kann mir jemand weiterhelfen. Danke im vorraus.

  • #2
    Abgesehen von der fehlenden schliessenden } der for-Schleife ist im gezeigten Code kein Fehler.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Oh man, ich sollte vielleicht doch bisschen schlafen. Hab bestimmt eine Stunde hin und her versucht. Danke dir für die schnelle Antwort.
      Allerdings bin ich jetzt über das Resultat ein wenig verwundert. Die Schleife wird nämlich anscheinend nur einmal ausgeführt, obwohl sie 18mal (Anzahl der Mannschaften) ausgeführt werden sollte.

      Kommentar


      • #4
        Hi,

        Zitat von herrentor Beitrag anzeigen
        Allerdings bin ich jetzt über das Resultat ein wenig verwundert. Die Schleife wird nämlich anscheinend nur einmal ausgeführt, obwohl sie 18mal (Anzahl der Mannschaften) ausgeführt werden sollte.
        die for-Schleife wird nur einmal durchlaufen, in dem Array $vereine kann sich ja auch nur ein Element befinden. Was ist das überhaupt für ein abenteuerliches Konstrukt? Warum machst Du nicht eine einfache while-Schleife über das Datenbankergebnis und lässt darin einfach einen Zähler mitlaufen, wenn Du den brauchst?

        Zitat von herrentor Beitrag anzeigen
        Oh man, ich sollte vielleicht doch bisschen schlafen.
        Definitiv.

        LG

        Kommentar


        • #5
          Das überfordert mich jetzt ein wenig. Ich wollte eigentlich einfach alle Vereinsnamen in ein Array schreiben lassen. Beschäftige mich allerdings auch erst 3 Wochen mit SQL. Kannst du mir vielleicht ein Beispiel geben, wie ich das mit einer while-Schleife machen kann? Ich habs nämlich so versucht und bekomme das gleiche Ergebiss wie mit der For-Schleife
          Zuletzt geändert von herrentor; 12.06.2009, 15:41.

          Kommentar


          • #6
            Hi,

            mysql_fetch_assoc liest einen (den nächsten) Datensatz aus dem Ergebnis. Innerhalb der for-Schleife verwendest Du das doch schon richtig in der while-Schleife. Was soll die for-Schleife da?

            PHP-Code:
            $sql 'SELECT vereinsname FROM mannschaften'
            $result mysql_query($sql); 
            $i 0;
            while(
            $row mysql_fetch_assoc($result)) {
               
            // mach, was immer Du mit $row['vereinsname'] und $i machen willst.
               
            $i++;

            LG

            Kommentar


            • #7
              Hey, ich glaub wir reden aneinander vorbei. Mein Ziel ist es 18 Zeilen zu erstellen und in jeder Zeile ein Menü mit allen eingetragenen Vereinen. Das heißt die For-Schleife soll einfach 18mal durchlaufen. Aber wenn ich das per Hand eingebe, bekomm ich zwar die 18 Zeilen, jedoch steht dann nur in der ersten ein gefülltes Menü.

              Kommentar


              • #8
                Dann hole die Datensätze nicht erst in der for-Schleife ab, sondern vorher - und lege sie in einem Array ab.
                Dieses durchläufst du dann in der for-Schleife mit einer zweiten Schleife, um die einzelnen Werte auszugeben. foreach bietet sich für die innere Schleife an.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Ok, als letztes noch. Gibt es einen Befehl womit ich alles ausgewählte in einem Array speichern kann? Danke euch.

                  Kommentar


                  • #10
                    Zitat von herrentor Beitrag anzeigen
                    Ok, als letztes noch. Gibt es einen Befehl womit ich alles ausgewählte in einem Array speichern kann? Danke euch.
                    Durchlaufe das Ergebnis in einer while-Schleife und baue darin das Array auf. Oder verwende die MySQLi-Erweiterung, die Result-Klasse bietet eine Methode fetch_all.

                    Solltest Du jetzt wieder antworten wollen, dass Dich das noch überfordert, fängst Du bitte erstmal mit einem Tutorial an.

                    LG

                    Kommentar

                    Lädt...
                    X