mysql_num_fields(): supplied argument is not a valid MySQL result resource

Mavericklp

Erfahrenes Mitglied
moin moin zusammen,
Ich habe da mein eine Frage. In meinem PHP Code habe ich eine MySQL Abfrage eingebaut, welche lautet:
PHP:
$result = @mysql_query("SELECT * FROM Filme ORDER BY $order");
print_result_filme_edit1($result);
$num = mysql_num_rows($result);
echo $num . " Eintraege gefunden";

PHP:
function print_result_filme_edit1($result){
  // Tabellenanfang
  echo "<table border=\"1px\">\n";
  echo "<tr>\n";
  for ($i = 1; $i < mysql_num_fields($result); $i++){

      if ($i == 1) { //Name
          $breite = 100;
      }
      elseif ($i == 2) { //Bschreibung
          $breite = 300;
      }
      elseif ($i == 3) { //Kategorie
          $breite = 50;
      }
      elseif ($i == 4) { //Sprache
         $breite = 20;
      }
      elseif ($i == 5) { //Untertitel
         $breite = 20;
      }
      elseif ($i == 6) { //Groesse
         $breite = 50;
      }
      elseif ($i == 7) { //Format
         $breite = 50;
      }
    echo "<td width=\"$breite px\" bordercolor=\" black\">".mysql_field_name($result1,$i)."</td>\n";
    }
    echo "<td bordercolor=\" black\">Edit</td>";
  echo "  </tr>\n";
//inhalt ausgabe
  while ($row = mysql_fetch_row($result)){
    echo "  <tr>\n";
    for ($i = 1; $i < mysql_num_fields($result); $i++){
      echo "    <td bordercolor=\"black\">$row[$i]</td>\n";
    }
    echo "<td align=\"center\"><a href=\"filme.php?id=$row[0]\">X</a></td>";
    echo "  </tr>\n";
  }
  echo "</table>\n";
}

und bekomme diesen Fehler ausgegeben:
Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Bibliothek\includes\filme.php on line 62

das was mich jetzt an dem ganzen iritiert, ist das ich diesen Code schon mehrmals verwendet habe und jedes mal nur den Funktionsnamen und die ausgabe verändert habe. Alles andere ist gleichgebleiben und liefert keinen Fehler.

Woran könnte es jetzt liegen das dieser fehler auftritt
 
Du hast im Sql befehl eine Variable angeben!

"SELECT * FROM Filme ORDER BY $order"

Und zwar als String damit stimmt dann der Sql befehl nicht.
"SELECT * FROM Filme ORDER BY ".$order;


Mfg Splasch
 
Beide Schreibweisen sind äquivalent, da in beiden Fällen nur der Wert der $order-Variable angehängt wird. Es wäre allerdings sinnvoll, diese neue Zeichenkette mal auszugeben, um zu schauen, ob sie der Erwartung entspricht.
 
Variablen zwischen " " (Quotes) werden von PHP interpretiert. Jene zwischen ' ' (Singlequotes) jedoch nicht:

PHP:
<?
	$var = "Test";

	echo "Dies ist ein $var";
	echo "<br />";
	echo 'Dies ist ein $var';
?>

Output:
Code:
Dies ist ein Test
Dies ist ein $var

Ich würde dem Threadersteller auch raten den Querystring oder mindestens die Variable im Querystring ausgeben zu lassen. Wenn alles korrekt aussieht, den Query mal manuell direkt in der DB absetzen (über PhpMyAdmin o.ä.)

Gruss Igäl
 
:mad: *Kopf = Tisch* :mad:

Vielen Dank für eure Hilfe Ihr habt mir sehr weiter geholfen.

Das Problem lag inderekt an der Abfrage. Ich habe zu wenig kopiert der teil der die Variable $order bei keiner auswahl füllt habe ich vergessen :D
 

Neue Beiträge

Zurück