ein problem mit einer klasse

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

  • ein problem mit einer klasse

    Tach also erstmal frohe weinachten

    Und jetzt zu meinen problem Ich hab hier diese klasse
    PHP-Code:
    class db
    {

      var 
    $_db_conn false;
      var 
    $_db_host 'localhost';
      var 
    $_db_user 'tobi1986m';
      var 
    $_db_pass 'yse-0663#';
      var 
    $_db_base 'portal';

      function 
    connect()
      {
        
    $this->_db_conn mysql_connect($this->_db_host$this->_db_user$this->_db_pass) or die($this->get_mysql_error("Konnte keine verbindung herrstellen"));
        
    mysql_select_db($this->_db_base$this->_db_conn) or $this->get_mysql_error("konnte datenbank nicht finden");
      }

      function 
    query($result)
      {
      
    $this->connect();
      return 
    mysql_query($result$this->_db_conn) or $this->get_mysql_error($result); //hier ist zeile 20
      
    }

      function 
    fetch_array($result)
      {
        return 
    mysql_fetch_array($result) or $this->get_mysql_error($result); // hier ist zeile 25
      
    }

      function 
    get_mysql_error($msg)
      {
        echo 
    "MSG:";
        echo 
    $msg;
        echo 
    "<br>";
        echo 
    "Error:";
        echo 
    mysql_error();
        echo 
    "<br>";
        echo 
    "Error Nummer:";
        echo 
    mysql_errno();
      }

    aber ich bekomme immer diesen fehler

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programme\Jana2\html\test\db\db.php on line 25
    MSG:1
    Error:
    Error Nummer:0PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programme\Jana2\html\test\db\db.php on line 25

    Wüsste einer was ich hier falsch gemacht habe?

  • #2
    Re: ein problem mit einer klasse

    Wüsste einer was ich hier falsch gemacht habe?
    die klasse an sich scheint ja ok zu sein,
    zeig mal, wo und wie du die function fetch_array($result) aufrufst, ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      das mache ich so
      PHP-Code:
      $db = new db;
      $db->connect();
      $result $db->query("SELECT boxname,boxinhalt,boxseite FROM portal_box ORDER BY boxsort");
          while(
      $row $db->fetch_array($result)) 

      Kommentar


      • #4
        bin dem fehler noch nicht auf die schliche gekommen, aber

        warum connectest du 2 mal?
        letztendlich ist deine gesamte klasse doch nur eine auflistung von aliassen. das heist statt mysql_fetch_array() nutzt du $this->fetch_array() Worin siehst du hier den Vorteil außer beim Debuggen?

        (ich suche weiter!)

        Kommentar


        • #5
          ?,
          kannst du das mysql_error(); mal direkt benutzen? ohne deine fehlermethode?
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            hmm, das sieht echt seltsam aus....

            Kommentar


            • #7
              ja finde ich auch und irgent wie hab ich kein bock meh mach ich es eben ohne klasse das geht mir langsam auf denn sack

              Kommentar


              • #8
                Also ich würde prinzipiell schonmal ein Result als Referenz übergeben:
                PHP-Code:
                  function fetch_array(&$result
                Sonst könnte der Fehler daher kommen, dass etwas an deinem Query nicht stimmt, oder die DB-Verbindung fehlschlägt.

                dann solltest du deinen Variablen bessere Namen geben, immer Result ist nicht gut (z.B. übergibst du ein SQL-Result an deine Fehlerfunktion - Zeile 20, was nicht wirklich Sinn macht)
                hopka.net!

                Kommentar


                • #9
                  Die Idee mit der klasse ist so schlecht nicht. Richtig aufgebaut macht die ne menge sinn. Du hast halt nur noch nicht ausreichend drüber nachgedacht.

                  Nimm dir die paar Punkte aus dem Forum mal zu Herzen.

                  Das Result würde ich übrigens nicht als Referenz übergeben, sondern einfach sämtliche Results in der Klasse speichern.

                  Kommentar


                  • #10
                    tja, ich persönlich würde das Result als eigenes Objekt zurückgeben, dass dann über Methoden wie fetch_array etc. verfügt.
                    hopka.net!

                    Kommentar


                    • #11
                      mit:
                      PHP-Code:
                      function query($result)

                        {

                         
                      $zurueck mysql_query($result$this->_db_conn) or $this->get_mysql_error($result); //hier ist zeile 20
                         
                      return $zurueck;
                        } 
                      hat es bei mir funktioniert

                      Offe

                      Kommentar


                      • #12
                        tja, ich persönlich würde das Result als eigenes Objekt zurückgeben, dass dann über Methoden wie fetch_array etc. verfügt.
                        wenn ich dich richtig verstehe, dann ist das das was ich meine...

                        Kommentar


                        • #13
                          ich mein so:
                          PHP-Code:
                          $result $db->query("SELECT elephant FROM africa");
                          while (
                          $row $result->fetch_array()) {
                            
                          print_r($row);

                          hopka.net!

                          Kommentar


                          • #14
                            wie sieht die fetch_array() aus?

                            Kommentar


                            • #15
                              jetzt hab ich die ausgabe aus der db das ist schonmal super danke
                              aber ich hab trozdem irgendwie unter der ausgabe noch einen fehler stehen

                              MSG:Resource id #4
                              Error:
                              Error Nummer:0

                              Kommentar

                              Lädt...
                              X