Fatal Error: Function name must be a string

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fatal Error: Function name must be a string

    dieser Fehler taucht auf, wenn ich eine funktion aufrufe, welche die Anzahl von Spalten zählen soll (also mit COUNT)
    ich hab leider keinen plan was es bedeutet

    PHP-Code:
    $sql "SELECT COUNT(*) FROM " $TblSubCategories " WHERE MainCategoryID = '" $MainCategorieID "';";
    echo 
    $sql;
    $result mysql_query($sql) OR die(mysql_error()); 
    wenn ich den sql string via echo ausgeben lasse und im php myadmin teste funktioniert er einwand frei. hab leider keinen blassen schimmer wo der fehler liegen könnte

  • #2
    Na wie heißt denn die Funktion, die du da aufrufst?

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Na wie heißt denn die Funktion, die du da aufrufst?
      ich kann nicht ganz folgen? meinste count?

      Kommentar


      • #4
        nein sowas wie
        PHP-Code:
        function zaehlAb ()
        {
              
        $sql "SELECT COUNT(*) FROM " $TblSubCategories " WHERE MainCategoryID = '" $MainCategorieID "';";
              ...

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hallo!

          Ich habe keine Ahnung, ob es damit zusammenhängt, aber im Handbuch steht zu mysql_query():
          "Anmerkung: Die Anfrage sollte nicht mit einem Semikolon enden."
          (http://www.php-resource.de/manual.ph...on.mysql-query)

          Also mal ohne Strichpunkt versuchen.

          die() gibt es laut Handbuch hier gar nicht. Zumindest findet er nichts.

          Grüße,
          Bernhard

          Kommentar


          • #6
            @onemorered

            ich fürchte ich kann dir auch nicht ganz folgen

            Wahrscheinlich bin ich schon zu müde heut

            EDIT:
            achso, jetzt versteh ich dich erst.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Willst du uns nur verwirren? Lies doch mal was Kropff schrieb - der ganze Code da oben steht doch in einer Funktion oder nicht? Wie ist ihr Name?

              Kommentar


              • #8
                @kropff also mit dem funktionsnamen hab ich schon rumprobiert, weil ich dachte es liegt daran. aber solang der oben geschriebene quellcode drin steht gehts nicht. wenn ich den auskommentiere dann gehts.
                also liegts irgendwie an der sql anweisung
                ich werds mal ohne klammern probieren und ohne semikolon. obwohl letzteres wahrscheinlich egal ist.
                man kann sql anweisungen ohne ; schreiben ich habs allerdings so gelernt das man es dazu schreiben sollte. vor allem wenn es mehrere sql statements sind ist das ; pflicht.

                edit: ok wenn ich die klammern bei count weglasse dann erkennt mysql es fälschlischerweise als Feld. ohne * gibts fehlermeldung das der sql syntax nicht korrekt ist und ; macht keinen unterschied

                Kommentar


                • #9
                  mysql_query() kann sowieso nur ein Statement verarbeiten.

                  Poste doch mal bitte die ganze Funktion, dann können wir es vielleicht nachvollziehen.

                  Kommentar


                  • #10
                    PHP-Code:

                    function getSubCategoriesCount($MainCategorieID)
                    {
                        require(
                    '../configuration/config.inc.php');
                        
                        
                    //Datenbankverbindung
                        
                    mysql_connect($DBHost$DBUser$DBPass) OR die(mysql_error());
                        
                    mysql_select_db($DBName);
                        
                        
                    $sql "SELECT COUNT(*) FROM " $TblSubCategories " WHERE MainCategoryID = '" $MainCategorieID "';";
                        echo 
                    $sql;
                        
                    $result mysql_query($sql) OR die(mysql_error());
                        
                        
                    mysql_close();    

                    ok eine zuweisung des ergebnisses is noch net drin. weiß nämlich noch nicht konkret wie das gemacht wird. mit mysql_fetch_assoc() sicher nicht oder?

                    Kommentar


                    • #11
                      Original geschrieben von st@tic
                      ok eine zuweisung des ergebnisses is noch net drin. weiß nämlich noch nicht konkret wie das gemacht wird. mit mysql_fetch_assoc() sicher nicht oder?
                      Doch, kann man verwenden, alternativen wären mysql_fetch_object, mysql_fetch_array, mysq_fetch_row...

                      Aber mit deinem Error sollte das IMHO nix zu tun haben.

                      Poste doch bitte auch noch die komplette Fehlermeldung die du bekommst, in Zeiten von Copy & Paste sollte das kein Problem sein
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #12
                        ich glaubs doch net,
                        ich hab den fehler gefunden.

                        ich hatte da ein fehlerhaftes var_dump() drin...

                        aaaah, peinigt und erhängt mich öffentlich

                        Kommentar


                        • #13
                          OffTopic:
                          ich hatte da ein fehlerhaftes var_dump() drin...
                          soviel zum Thema kompletten(!) Code posten

                          Kommentar

                          Lädt...
                          X