Fehler in while-Zeile



  • Hallo, ich erhalte in der while-Zeile immer einen Fehler.
    Kann mir jemand sagen, warum?
    Danke!

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>DB-Verbindung</title>
    <!--esi localhost="http://localhost/cocktails"-->
    </head>
    <body>
    <?php
    
    	$succ = mysql_connect("localhost", "root", "xyz");
    	$succ = mysql_select_db("cocktails");
    	while ($row = mysql_fetch_row($erg))
    	{
    		echo $row[0] . "<br>";
    		echo $row[1] . "<br>";
    		echo $row[2] . "<br><br>";
    	}
    	mysql_close();
    
    ?>
    </body>
    </html>
    


  • Wo ist der SQL-Query ?



  • Vielen Dank, du hast mir damit geholfen. 🙂
    Bin noch MySQL-Laie.



  • Hallo, ich habe noch eine Frage. Warum erhalte ich hier in der fetch_row-Zeile eine Fehlermeldung?

    if ($suchliste == "Cocktails")
    {
        $erg = mysql_query("SELECT name from $dbname WHERE name = $suchbegriff");
        $row = mysql_fetch_row($erg);
        if (! $row)
            ....
    }
    

    Der Code läuft, wenn ich die Variable $suchbegriff durch eine Konstante, z. B. 'Blue Curacao' ersetze. Aber wie geht es mit einer Variablen?
    Danke schon mal im Voraus!!!



  • Hallo.

    Um eine Variable im Query zu verwenden, musst du diese bei Strings in Anführungszeichen setzen:

    if ($suchliste == "Cocktails")
    {
        $erg = mysql_query("SELECT name from $dbname WHERE name = '$suchbegriff'");
        $row = mysql_fetch_row($erg);
        if (! $row)
            ....
    }
    

    (Siehe Variable $suchbegriff im Query)



  • Vielen Dank für die Antwort!!! 🙂



  • Hallo, danke für die Antworten!
    Ich habe noch eine letzte Frage. Es geht um folgendes Fragment:

    $erg = mysql_query("SELECT glasarten.bezeichnung, cocktails.name
                        FROM glasarten INNER JOIN cocktails ON 
                        glasarten.glas_id = cocktails.glas_id
                        GROUP BY glasarten.bezeichnung, cocktails.name
                        HAVING (((glasarten.bezeichnung)
                        = '$suchbegriff'))");$zaehler = 0;
    while ($row = mysql_fetch_row($erg))
    {
        if ($zaehler == 0)
        {
            echo "<br>Glasart: $row[0]";
            $zaehler++;
        }
        echo "<br>Der dazu passende Cocktailname: $row[1]";
    }
    

    Ich möchte, dass die Glasart nur einmal ausgegeben wird (die ist das Suchwort) und dass dann ein paar Mal der passende Cocktailname ausgegeben wird. Es funktioniert auch alles. Aber ist das mit der zaehler-Variablen so gut gelöst, oder macht man das anders?
    Danke für eine Antwort!!



  • Naja, ich würde (der Übersicht wegen) einfach schreiben:

    if ($anzeige == "FALSE")     
    {
             echo "<br>Glasart: $row[0]";         
             $anzeige = "TRUE"; 
    }
    

    Der Zähler würde mich ein wenig verwirren. So sollte dir auch in einem Jahr noch klar sein, wofür "$anzeige" steht. Ist aber Ansichtssache.



  • Frage doch einfach ab, ob du ein Ergebnis hast und wenn ja gib die Glasart schon vor der while-Schleife aus



  • Ich weiß jetzt, dass ich es prinzipiell richtig gemacht habe, dass es nicht irgendeinen Kniff gibt oder so.
    Danke.


Anmelden zum Antworten