Mfrank: PHP/SQL - mysql_fetch

Hallo zusammen,

ich habe mir mal die Mühe gemacht und meine eigene CD/Lieder-Datenbank aufgesetzt..
Jetzt möchte ich alle Lieder angezeigt bekommen, die mit einem bestimmten Buchstaben anfangen, bekomme aber immer folgende Fehlermeldung:
Supplied argument is not a valid MySQL result resource
Mein Lösungsversuch sieht so aus:
<?php
$db_serv = '...';
$db_name = '...';
$db_user = '...';
$db_pass = '...';

$db = mysql_connect($db_serv, $db_user, $db_pass) or die('FEHLER!');
mysql_select_db($db_name, $db) or die('Verbindung zur Datenbank fehlgeschlagen...');

$select = "SELECT CDNummer,Titel,Anfang FROM Lieder WHERE Anfang LIKE='".$anfvar."%' ORDER BY 'Titel'";     <----- $anfvar wird richtig übergeben, zB "A"
$query = mysql_query($select, $db);

echo "<table cellspacing="0" cellpadding="5" border="0" align="center">";
echo "<tr><td>Liedanfang :  ".$anfvar."<br><br></td>";
echo "</tr><tr><td>Anfang</td><td>Titel</td><td>CDNummer</td></tr>";

while($select = mysql_fetch_row($query)) {     <----- heisst doch, solange aus dem select eine neue row kommt !?
echo $select['Anfang']." : ".$select[Titel]." : ".$select['CDNummer'];
}
echo "</table>";
?>
.....
Wo liegt der Fehler ? Was habe ich nicht verstanden ? Wer kann mir helfen ? ...
Zur Info: Bin relativ "neu" im Bereich PHP/SQL und versuche mich noch einzuarbeiten...

Danke

Frank

  1. Hallo,

    dieser Fehler weist meist daraufhin, das due per sql etwas aus der Datenbank holen willst, was nicht vorhanden ist.

    Die Verbindung zur DB an sich klappt aber?

    Dann überprüf die vorhandenen Felder...

    Odium

    1. Hallo,

      dieser Fehler weist meist daraufhin, das due per sql etwas aus der Datenbank holen willst, was nicht vorhanden ist.

      Klar gibts da Einträge ;-)

      Die Verbindung zur DB an sich klappt aber?

      yapp

      Dann überprüf die vorhandenen Felder...

      Er meckert genau diese Zeile an:
      while($select = mysql_fetch_row($query)) {

      ????
      (kein Plan :( )

      Frank

      1. Hi,

        while($select = mysql_fetch_row($query)) {

        ja logisch meckert er da, wenn in $query keine gültige reslut-ressource drin steht

        Zur Fehlerbehebung lass Dir den mysql_error() ausgeben, mit die() zB.
        $query = mysql_query($bla) or die($mysql_error());

        oder lass dir den selct-string mal ausgeben und setze ihn direkt an der db ab und schaue was passiert.

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. Hi,

          Zur Fehlerbehebung lass Dir den mysql_error() ausgeben

          Call to undefined function

          oder lass dir den selct-string mal ausgeben und setze ihn direkt an der db ab und schaue was passiert.

          aaargh... das "=" hinterm LIKE war zuviel *g*

          thnx @ll

          Frank

  2. Hallo,

    $select = "SELECT CDNummer,Titel,Anfang FROM Lieder WHERE Anfang LIKE='".$anfvar."%' ORDER BY 'Titel'";     <----- $anfvar wird richtig übergeben, zB "A"

    Was bezweckt das Gleichheitszeichen nach LIKE und warum steht Titel nach ORDER BY in '...'?

    So sollte es funktionieren:

    $select = "SELECT CDNummer,Titel,Anfang FROM Lieder WHERE Anfang LIKE '".$anfvar."%' ORDER BY Titel";

    MfG, Thomas