Wieso findet der die Klasse nicht?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

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

    Comment


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

      Comment


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

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

        Comment


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

          Comment


          • #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]

            Comment


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

              Comment


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

                Comment


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

                  Comment

                  Working...
                  X