Fehlermeldung mysql_num_fields und rows

fruchtgummi

Mitglied
Hallo allerseits,

Ich bins wieder, die mithilfe einer PC-Zeitschrift MySQL lernen will. Gestern habe ich die Datenbank in PhpMyAdmin angelegt, heute will ich sie über php anzeigen lassen. Ich habe im Netz und hier im Forum schon einiges gelesen, aber scheinbar hat die Fehlermeldung überall eine andere Ursache oder ich blicke bei der Erklärung nicht durch. Die Fehlermeldung ist:

Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web66/html/adressen.php on line 16

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web66/html/adressen.php on line 17

Anzahl der Datensätze:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web66/html/adressen.php on line 27


Und hier der Code:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Namen anzeigen</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h3>Filme anzeigen</h3>
<?php
include("zugriff.inc.php");
$sql = "SELECT MeineFilme.id, Filmtitel, Regisseur, Schauspieler, Musik,
Buch, Drehbuch, Dauer, Jahr, Wahre Begebenheit, Genre, FSK, Love1-5, Studio, vhs-dvd.DVDVHS 
FROM MeineFilme 
LEFT JOIN vhs-dvd ON MeineFilme.DVDVHS = vhs-dvd.id";
$result = mysql_query($sql);
$felder = mysql_num_fields($result);
$datensaetze = mysql_num_rows($result);
echo "<p>Anzahl der Datensätze: <b>$datensaetze</b></p>\n";
echo "<table border='1' cellspacing='0'>\n"; // Tabelle beginnen
echo "<tr>"; // Zeile erzeugen
for ($i = 0;$i < $felder;$i++) {
    $feldname = mysql_field_name($result, $i);
    echo "<th>$feldname</th>";
} 
echo "</tr>\n"; // Zeile schließen

while ($row = mysql_fetch_assoc($result)) {
    echo "<tr>"; // Zeile erzeugen
    foreach ($row as $key => $value) {
        echo "<td>$value&nbsp;</td>";
    } 
    echo "</tr>\n"; // Zeile schließen
} 
echo "</table>\n"; // Tabelle schließen
mysql_close($dp);
?>
</body>
</html>

Ich lasse das Script nicht offline am Rechner laufen, sondern gehe gleich online über den Server. Dieser läuft mit MySQL 4.0.15-Max, was das Max heißt, weiß ich nicht. Steht jedenfalls im Confixx.

Wäre sehr dankbar über Hilfe, hoffentlich ist es nicht zu offensichtlich, was da falsch ist.

Viele Grüße
fruchtgummi
 
Bitte verwende zuerst die Funktion [phpf]mysql_error[/phpf] und nenne uns die zurückgegebene Fehlermeldung.
 
Hallo,

bin so grün hinter den Ohren mit MySQL; ich habe den genannten Befehl bestimmt schon falsch eingebaut.

Weil auf meinem Server eigentlich nur eine Datenbank zur Verfügung steht, die usr_web66_1 heißt und MeineFilme eigentlich nur eine Tabelle ist, habe ich Folgendes porbiert:

Code:
mysql_select_db("usr_web66_1");
mysql_query("SELECT * FROM MeineFilme");
echo mysql_errno() . ": " . mysql_error() . "\n";

Da steht dann nur oberhalb der Fehlermeldung
0:

Dasselbe bringt er bei:

Code:
mysql_select_db("usr_web66_1");
echo mysql_errno() . ": " . mysql_error() . "\n";

Was mache ich falsch?

Viele Grüße
fruchtgummi
 
Du sollst das nach Deinem oben geposteten Query machen. In dem letzten Beispiel hast Du eine richtige Abfrage geschrieben, daher gibt es auch keinen Fehler.
PHP:
//...
$sql = "SELECT MeineFilme.id, Filmtitel, Regisseur, Schauspieler, Musik,
Buch, Drehbuch, Dauer, Jahr, Wahre Begebenheit, Genre, FSK, Love1-5, Studio, vhs-dvd.DVDVHS 
FROM MeineFilme 
LEFT JOIN vhs-dvd ON MeineFilme.DVDVHS = vhs-dvd.id";
$result = mysql_query($sql);
echo mysql_error(); // <<-- HIER
//...
Gruß hpvw
 
Hallo und danke für den Hinweis!

Jetzt bringt er folgende Fehlermeldung:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '-dvd ON MeineFilme.DVDVHS = vhs-dvd.id' at line 4


Also jetzt weiß man's, aber eigentlich bin ich persönlich auch nicht schlauer geworden.

Viele Grüße
fruchtgummi
 
Hallo und danke nochmal!
Er hat sich noch an der Leerzeichen bei "Wahre Begebenheit" aufgehängt. Dann habe ich auch noch Love1-5 umbenannt und dann war alles okay, er zeigte mir die Tabelle an!
Viele Grüße
fruchtgummi
P.S So jetzt mach ich weiter mit dem Heft - es tauchen bestimmt noch mehr Fragen auf...
 
Zurück