Problem MySQL-Abfrage - Fehlermeldung ohne Sinn
Patrick Schröder
- php
Hallo ihr,
ich habe eine Frage zu einer MySQL-Abfrage, die ich geschrieben habe, wo die Fehlermeldung aber überhaupt keinen Sinn ergibt. Auch habe ich meine Abfrage über phpMyAdmin überprüft. Dort ist das Ergebnis einwandfrei. Auf der Seite werden aber dennoch Fehler angezeigt, die ich nicht zuordnen kann.
Weiter habe ich sichergestellt, dass es sich um die entsprechenden Zeilen aus der Datei handelt und der Fehler nicht an anderer Stelle zu suchen ist.
Abfrage:
<?php
$sql = "SELECT * FROM tblNavigationOben WHERE freigabe = '1'";
$result = mysql_result($sql);
$ges_menues = mysql_num_rows($result);
?>
Die Tabelle dazu:
CREATE TABLE tblNavigationOben (
id int(2) NOT NULL default '0',
name varchar(40) NOT NULL default '',
hinweis varchar(20) NOT NULL default '',
freigabe int(1) NOT NULL default '1',
PRIMARY KEY (id)
) TYPE=MyISAM;
Und nun die Fehlermeldung:
Warning: Wrong parameter count for mysql_result() in /home/...../includes/navi_oben.inc on line 3
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/...../includes/navi_oben.inc on line 4
Wird da jemand von euch schlau draus? Ich zweifel langsam an meinem Verstand.
Gruß Patrick
ich habe eine Frage zu einer MySQL-Abfrage, die ich geschrieben habe, wo die Fehlermeldung aber überhaupt keinen Sinn ergibt.
$sql = "SELECT * FROM tblNavigationOben WHERE freigabe = '1'";
$result = mysql_result($sql);
$ges_menues = mysql_num_rows($result);
Und nun die Fehlermeldung:
Warning: Wrong parameter count for mysql_result() in /home/...../includes/navi_oben.inc on line 3
Lesen wir das doch mal: "Warnung: Falsche Parameteranzahl bei mysql_result() in ... blabla".
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/...../includes/navi_oben.inc on line 4
Lesen wir das doch mal: "Warung: mysql_num_rows(): angegebenes Argument ist keine gültige MySQL-Resource ... blabla".
Wird da jemand von euch schlau draus? Ich zweifel langsam an meinem Verstand.
Gut möglich. Wer bei der Meldung "Falsche Parameter..." nicht gleich in der Anleitung nachschaut, wie denn die Parameter der Funktion aussehen soll, hat offensichtlich ein sehr großes Brett vorm Kopf.
Und dass Du es unterlassen hast zu prüfen, ob mysql_result() überhaupt ein Ergebnis zurückgegeben hast: Mach Dir keine Sorgen, andere Einsteiger sind genauso unbekümmert wie Du.
Tach Hohlraum...
Gut möglich. Wer bei der Meldung "Falsche Parameter..." nicht gleich in der Anleitung nachschaut, wie denn die Parameter der Funktion aussehen soll, hat offensichtlich ein sehr großes Brett vorm Kopf.
Und dass Du es unterlassen hast zu prüfen, ob mysql_result() überhaupt ein Ergebnis zurückgegeben hast: Mach Dir keine Sorgen, andere Einsteiger sind genauso unbekümmert wie Du.
Es mag sein, dass ich grad ein Brett vorm Kopf habe.... Aber glaubst du ernsthaft, dass ich diese Dinge nicht getan habe und dann hier schreibe? Ich bräuchte grad mal jemanden, der mir vielleicht mal kurz das Brett entfernt, anstatt nochmal gegen zu klopfen. - Das bringt mich grad nicht weiter.
Patrick
Es mag sein, dass ich grad ein Brett vorm Kopf habe.... Aber glaubst du ernsthaft, dass ich diese Dinge nicht getan habe und dann hier schreibe?
Ja, denn das ist der Normalfall. Warum Du der Normalfall zu sein scheinst?
1. Es hätte Dir mit einem einzigen Blick in die Anleitung zumindest auffallen müssen, dass mysql_result() mindestens zwei Parameter statt nur eines erwartet, genau so wie in der ersten Fehlermeldung beschrieben.
2. Prüfen eines SQL-Befehls, obwohl die erste Fehlermeldung sich eindeutig auf eine PHP-Funktion und ihre Parameter bezog.
3. Schlampige Programmierung, da weder Fehlerprüfung noch Interesse an MySQL-Fehlermeldungen (mysql_error()).
Holladiewaldfee,
Wird da jemand von euch schlau draus? Ich zweifel langsam an meinem Verstand.
Jep. Jetzt schau mal nach, was mysql_result als Parameter erwartet (http://de2.php.net/mysql-result) und mit was Du es fütterst. Da dürfte ein vernünftig platziertes mysql_query wunder wirken ;-)
Ciao,
Harry
Entschuldigung Harry,
aber ich habe nachgeschaut und... ich sehs nicht. Ich seh den Fehler einfach nicht. Mag sein, dass ich blind bin oder Tomaten auf den Augen habe, aber ich steht grad wie die Axt im Wald.
Nichts für ungut, vielleicht schaff ichs ja doch noch im Laufe des Tages...
Patrick
Hello,
aber ich habe nachgeschaut und... ich sehs nicht. Ich seh den Fehler einfach nicht. Mag sein, dass ich blind bin oder Tomaten auf den Augen habe, aber ich steht grad wie die Axt im Wald.
Nichts für ungut, vielleicht schaff ichs ja doch noch im Laufe des Tages...
Der Gag an der Sache ist, dass man die Funktion "mysql_query()" benutzen muss, um ein Resultset zu ERZEUGEN. Benutzen kann man es dann später mit "mysql_result()".
Du willst aber erst mal eines erzeugen ;-)
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
nach deiner Aussage habe ich dann nochmal geschaut. Die Tomate lag wirklich auf dem mysql_result().... ich wollte nurn mysql_query und hab mich verschrieben.
Danke! Wenigstens einer, der einem nen wirklichen Denkanschub gibt ;-)
Gruß Patrick
Holladiewaldfee,
Danke! Wenigstens einer, der einem nen wirklichen Denkanschub gibt ;-)
ich zitier mich einfach mal selber (inkl. Rechtschreibfehler):
"Da dürfte ein vernünftig platziertes mysql_query wunder wirken ;-)".
Was wollte ich Dir damit wohl sagen? ;-)
Ciao,
Harry
Hello Harry,
ich zitier mich einfach mal selber (inkl. Rechtschreibfehler):
"Da dürfte ein vernünftig platziertes mysql_query wunder wirken ;-)".Was wollte ich Dir damit wohl sagen? ;-)
doppelt genäht hält eben besser.
Ist immer die Frage, wo man mit seiner Frage abgeholt werden muss.
Wenn man dann zu tief plaziert antwortet, kriegt man den Vorwurf, dass man die leute verarscht...
Also wie Du es machst ist es verkehrt.
Hauptsache, dass es Patrick jetzt geholfen hat.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom