Wieso findet der die Klasse nicht?

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

  • Wieso findet der die Klasse nicht?

    Hallo. Ich habe eine Datenbankklasse, welche auch bis eben perfekt funktioniert hat, und es eigentlich auch noch tut.

    Nuja, ich rufe in einem script eine Funktion auf, und auf einmal zeigt er mir folgenden Fehler an:

    Fatal error: Call to a member function on a non-object in C:\++++++++++++admin\admin.php on line 36

    Naja, in dem selben script wird öfter mal diese Klasse verwendet, und alles geht, nur bei der Funktion query() spinnt er. Die Funktion:

    PHP-Code:
    function query($query) {

        if(
    $this->db_status == "connected")
        {
            if(!
    $this->result mysql_query($query))
                {
                    
    $this->errormessage mysql_error();
                    
    $this->errornumber mysql_errno();
                    return 
    0;
                }
           else
               {
                   if(
    substr($query04) == "SELE")
                   {
                       
    $this->result_rows mysql_num_rows($this->result);
                       return 
    1;
                   }
               }
        }
        else
            {
                   return 
    0;
            }
        } 
    Wie gesagt, bisher hat sie immer funktioniert und tut sie auch noch bei anderen scripten. ie Klasse wird korrekt aufgerufen und definiert.
    Weiß jemand weiter?

  • #2
    was steht in admin.php in zeile 36?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      PHP-Code:
      $db->query("SELECT ncatname, ncatid FROM www_ncat ORDER by ncatid ASC"); 
      Eben nur ein Aufruf der Funktion

      Kommentar


      • #4
        PHP-Code:
        echo gettype($db); 
        mach das mal

        was steht in den 35 zeilen davor?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          öhm... soll ich echt alle Zeilen posten?
          Es wird das Wort "object" ausgegeben...

          In den Zeilen davor sind nur ein paar IF-Abfragen und unter anderem auch einige Aufrufe anderer Funktionen der Klasse. Die Zeilen davor funktionieren auch perfekt.

          Kommentar


          • #6
            Im Zweifel würde ich davon ausgehen das der Aufruf
            PHP-Code:
            $db->query("SELECT ncatname, ncatid FROM www_ncat ORDER by ncatid ASC"); 
            innerhalb einer Funktion liegt und die globale Variable $db nicht GLOBAL definiert ist ... oder $db ist einfach überhaupt nicht definiert ... die Möglichkeit gibt's auch noch ...
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              poste die 35 zeilen obendrüber
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                ist in keiner funktion.

                PHP-Code:
                <?php
                // admin
                if(isset($_GET['action'])) $action $_GET['action'];
                if(isset(
                $_GET['do'])) $do $_GET['do'];
                echo 
                gettype($db);
                if(!
                $action)
                {
                    
                $art = array("tut","script","code","link","user");
                    
                $name = array("Tutorials","Scripte","Codeschnipsel","Links","User");
                    
                $tables = array("www_tut","www_script","www_code","www_link","www_user");
                    
                $ids = array("tutid","scriptid","codeid","linkid","userid");
                    for(
                $i 0$i<5$i++)
                    {
                        
                $zahl $db->num_rows("SELECT ".$ids[$i]." FROM ".$tables[$i]." WHERE status = 0");
                        if(
                $zahl)
                        {
                            
                $art $name[$i];
                            eval (
                "\$new .= \"".gettemplate("new")."\";");
                        }
                    }
                    eval (
                "\$main = \"".gettemplate("welcome")."\";");
                }
                if(
                $action == "news")
                {
                    if(
                $do "add")
                    {
                        if(
                $_POST['action'] == "send")
                        {
                            
                $db->query("INSERT INTO www_news (ncatid, userid, title, text, time, relatet_link) VALUES ('".$_POST['catid']."','".$user_id."','".$_POST['title']."','".$_POST['text']."','".time()."','".$_POST['relatet_link']."')");
                            
                addpoints($user_id,"30");
                            
                $meldung "Die News wurde eingetragen. Es wurden dir 30 Punkte gutgeschrieben.";
                            eval (
                "\$main = \"".gettemplate("meldung")."\";");
                        }
                        else
                        {
                            
                $db->query("SELECT ncatname, ncatid FROM www_ncat ORDER by ncatid ASC");
                das sind sie. Außerdem wird jetzt, wenn erstere If abfrage stimmt, ein objekt ausgegeben, bei zweiter aber komischerweise "NULL". Also in der ersten IF-Abfrage findet er die KLasse, in der zweiten nicht.. :/
                Eingebunden wird die Klasse in einer anderen Datei.

                Kommentar


                • #9
                  habs gelöst, war ein Link Fehler, die _global datei wurde nicht mehr included, in der die Klasse definiert wird.

                  Trotzdem viele Dank für die Hilfe.

                  Kommentar

                  Lädt...
                  X