Supportnet / Forum / Skripte(PHP,ASP,Perl...)
PHP mysql_num_fields: Lokal läufts, online nicht
Frage
Hallo!
Die zweite der zwei folgenden Zeilen gibt eine Fehlermeldung aus:
$fields = mysql_list_fields("testdb", "gebrauchtwagen", $db_link);
$columns = mysql_num_fields($fields);
Fehlermeldung:
Warning: mysql_numfields(): supplied argument is not a valid MySQL result resource in /home/www/web149/html/vatterott/gebrauchtwagen/anzeigen.php on line 31
Kann mir da jemand helfen?
Antwort 1 von Nessus
Hi,
http://www.dclp-faq.de/q/q-formular-register-globals.html
Das dürfte es sein....
HTH
Nessus
http://www.dclp-faq.de/q/q-formular-register-globals.html
Das dürfte es sein....
HTH
Nessus
Antwort 2 von CodeXX
Mit welchen PHP Versionen und Mysql testest du? Sind Lokal und Online die selben? Wenn unterschiedlich - Update!
Antwort 3 von draack
Hallo!
Stelle doch bitte sicher, dass überhaupt eine Verbindung ($db_link) aufgebaut wurde.
Stelle sicher, dass die Datenbank UND die angesprochene Tabelle wirklich existieren.
Stelle sicher, ob mysql_list_fields() überhaupt ein Ergebnis geliefert hat (s.o.).
@Nessus: Was haben Variablen/Daten aus Formularen mit diesem Problem zu tun? Ich sehe nicht, dass Christian hier so etwas benutzt ...
Tschö!
Volker.
$link = mysql_connect ("[Server]", "[User]", "[Passwort]")
or die ("keine Verbindung möglich: " .mysql_error());@Nessus: Was haben Variablen/Daten aus Formularen mit diesem Problem zu tun? Ich sehe nicht, dass Christian hier so etwas benutzt ...
Tschö!
Volker.
Antwort 4 von Nessus
@draack
Du hast immer Probleme mit Variablenübergabe wenn auf dem Server Register_Globals On oder Off sind.
Ich nehme ja an, das die Tabellen und Spaltennamen stimmen, der Connect auch OK ist, also bleibt nicht mehr viel übrig.
Gerade wenn Du auf Testversionen eine ältere PHP Version hast und auf dem Server ein Neue, kommt es zu Problemen und da es anscheinend so ist, bleibt nicht mehr viel übrig.
Nessus
Du hast immer Probleme mit Variablenübergabe wenn auf dem Server Register_Globals On oder Off sind.
Ich nehme ja an, das die Tabellen und Spaltennamen stimmen, der Connect auch OK ist, also bleibt nicht mehr viel übrig.
Gerade wenn Du auf Testversionen eine ältere PHP Version hast und auf dem Server ein Neue, kommt es zu Problemen und da es anscheinend so ist, bleibt nicht mehr viel übrig.
Nessus
Antwort 5 von ChristianHahn
Die Verbindung ist da, weil ich im Anschluss gleich die Tabellen-Inhalte ausgebe und das funzt!
Es könnte schon an Register_Globals liegen! Aber hat dann einer eine Idee wie ich das umgehen kann? Um euch zu zeigen was ich vorhabe poste ich mal den nötigen Code:
$felder = mysql_list_fields("testdb", "gebrauchtwagen", $db_link);
$columns = mysql_num_fields($felder);
for ($i = 0; $i < $columns; $i++)
{
echo(" <td bgcolor=\"#A8D2EC\"><font color=\"#333333\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>");
echo mysql_field_name($fields, $i);
echo("</strong></font></td>");
}
PS:
Ich kann mir nicht vorstellen, das es an unterschiedlichen Versionen von PHP und MySQL liegt, denn das sind meiner Meinung nach ganz normale Funktionen die schon ewig vorhanden sind! Ausserdem steht auf php.net das man statt mysql_num_fields auch mysql_numfields verwenden kann zur Abwärtskompatibilität! Erscheint aber genau dasselbe!
Es könnte schon an Register_Globals liegen! Aber hat dann einer eine Idee wie ich das umgehen kann? Um euch zu zeigen was ich vorhabe poste ich mal den nötigen Code:
$felder = mysql_list_fields("testdb", "gebrauchtwagen", $db_link);
$columns = mysql_num_fields($felder);
for ($i = 0; $i < $columns; $i++)
{
echo(" <td bgcolor=\"#A8D2EC\"><font color=\"#333333\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>");
echo mysql_field_name($fields, $i);
echo("</strong></font></td>");
}
PS:
Ich kann mir nicht vorstellen, das es an unterschiedlichen Versionen von PHP und MySQL liegt, denn das sind meiner Meinung nach ganz normale Funktionen die schon ewig vorhanden sind! Ausserdem steht auf php.net das man statt mysql_num_fields auch mysql_numfields verwenden kann zur Abwärtskompatibilität! Erscheint aber genau dasselbe!
Antwort 6 von Nessus
Hi,
wenn es die register_globals sind, kannst Du die Vorgehensweise im Link (Antwort1) nachlesen.
Entweder stellst Du die Werteübergabe um, oder du arbeitest mit Direktiven in der .htaccess. Ist aber dort genau beschrieben.
Nessus
wenn es die register_globals sind, kannst Du die Vorgehensweise im Link (Antwort1) nachlesen.
Entweder stellst Du die Werteübergabe um, oder du arbeitest mit Direktiven in der .htaccess. Ist aber dort genau beschrieben.
Nessus
Antwort 7 von Nessus
Zum Thema Versionen: Was gibte ein phinfo() aus?
Daran siehst Du es.
Nessus
Daran siehst Du es.
Nessus
Antwort 8 von semi
Versuche mal über eine Abfrage die Spalteninfos zu holen.
Gruß,
Michael
mysql_query("show columns from gebrauchtwagen")
or die (mysql_error());
Gruß,
Michael

