Supportnet Computer
Planet of Tech

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

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.
    $link = mysql_connect ("[Server]", "[User]", "[Passwort]")
            or die ("keine Verbindung möglich: " .mysql_error());

  • 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.

  • 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

    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!

    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

    Antwort 7 von Nessus

    Zum Thema Versionen: Was gibte ein phinfo() aus?
    Daran siehst Du es.

    Nessus

    Antwort 8 von semi

    Versuche mal über eine Abfrage die Spalteninfos zu holen.
    
    mysql_query("show columns from gebrauchtwagen") 
      or die (mysql_error());
    

    Gruß,
    Michael

    Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: