Mit DB Klasse arbeiten

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

  • #16
    1. hast du richtig verstanden.
    2. tja, da musst du schauen, ob dir die db-klasse soetwas verrät: such eine eigenschaft bzw. eine methode zur abfrage, wieviele datensätze selektiert wurden.
    3.
    4. ist im grunde das gleiche, wie 2. (da hat aimbot übrigens zweifellos recht): schau dir an, ob die klasse dir die information darüber zur verfügung stellt.

    hint: beim nächsten mal erst klären, ob die klasse deinen anforderungen genügt, dann erst umsteigen.

    Kommentar


    • #17
      Original geschrieben von Luka
      2. Bei Lösung 2 habe ich ja if($abfrage), wenn also nix vorhanden ist, kann ich gleich eine Meldung ausgeben lassen. Wie aber mache ich das bei Ansatz 1??


      4. Wenn ich nach einem Insert eine Meldung ausgeben möchte das der Eintrag erfolgreich erfolgt ist, wie macht man das genau?
      - du wertest das ergebnis von mysql_query() bzw. mysql_error() aus.


      Ok, Frage 2 ist noch offen und bei Frage 4 weiss ich leider nicht, wie man das Ergebnis von mysql_query() bzw. mysql_error() auswertet. Jemand einen Tip?
      2. counte die elemente des arrays mit den datensätzen
      4.1. prüfe mit mysql_affected_rows ob datensätze hinzugefügt wurden (rtfm)

      4.2. check im manual was mysql_error zurückgibt bzw. macht, dann weisst du auch was du zu tun hast
      MfG
      aim
      Lies mich jetzt!
      - OT-Tags-Liebhaber und BB-Code-Einrücker -

      Kommentar


      • #18
        Leider muss ich das Thema wieder hochholen, da ich an einem neuen Problem mit der Klasse sitze.

        Ich möchte gerne 2 Dropdownfelder aus einer Tabelle befüllen, dafür muss ich am Ende ja den Zeiger wieder auf den ersten Datensatz zurücksetzen, damit ich das 2. Dropdownfeld erstellen kann. Dafür gibt es ja wohl diesen Befehl:

        PHP-Code:
        mysql_data_seek($result0); 
        Mein Sourcecode sieht jedoch so aus:
        PHP-Code:
        $sql="SELECT TeamName FROM tblTeams WHERE TeamTypeID='".$_SESSION['TeamTypeID'];

        $select=$DBConnection->query($sql); 
        Mir wurde ja bereits vorher gesagt um mit $result zu arbeiten muss ich mir die Klasse mal anschauen, ob das zur Verfügung gestellt wird. Leider kann ich das selbst aber immer noch nicht ersehen. Hier mal der Teil in der Klasse, um den es wohl geht:


        PHP-Code:
        // Create Querystring for Database
         
        function query($querystring)

                if (
        $this->connection == false)
                {
                    
        $this->connect();
                    
        $this->select_db(); 
                }
                if (
        $this->connection == false) return; 
                
        $res =  mysql_query($querystring$this->connection) or die("{query} Database Error : ".mysql_errno()." : ".mysql_error()); 
            return 
        $res

        Kann man damit was anfangen oder was muss ich machen damit ich ein $result habe?

        Vor der Klasse habe ich immer so gearbeitet:



        PHP-Code:
        $select="SELECT CategoryID FROM tblItem " ;
        $Result=mysql_query($select)or die(mysql_error().$errordatabase);

        if (
        $Result){
        echo 
        "blah";
         }

        else{
        echo 
        "Nix vorhanden";        

        Irgendwie möchte ich wieder ein $Result haben und dennoch mit der Klasse arbeiten, aber wie? Ich verzweifle noch. Dann könnte ich doch bestimmt auch mit dem mysql_data_seek($result, 0); arbeiten oder sehe ich das falsch?

        Ich hoffe Ihr habt nochmal einen Rat für mich.

        Vielen, vielen Dank im Voraus.

        Kommentar


        • #19
          Du arbeitest doch schon FAST gar nicht mit der Klasse

          PHP-Code:
          $select=$DBConnection->query("SELECT * FROM tblNamen");
          while (
          $Namen mysql_fetch_array($select)) 
          Is doch totaler humbug. Entweder ist die Klasse schrott oder du hast sie nicht verstanden

          Poste mal bitte das Ergebnis von

          PHP-Code:
          $methods get_class_methods($DBConection);

          echo 
          "<pre>";
          print_r($methods); 
          Außerdem... die query methode der klasse gibt doch ein result zurück.
          Also hast DU dein $result (es heisst bei dir nur $select)
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #20
            Original geschrieben von Luka
            Ich möchte gerne 2 Dropdownfelder aus einer Tabelle befüllen, dafür muss ich am Ende ja den Zeiger wieder auf den ersten Datensatz zurücksetzen, damit ich das 2. Dropdownfeld erstellen kann.
            Zwei Selectfelder mit genau den gleichen Daten?

            Dann ist es doch Quark, die Arbeit zwei mal zu machen. Lege es dir bei der Erzeugung in einer Variablen ab, anstatt es direkt auszugeben - und gebe es anschließend zwei mal an den Stellen aus, wo du's haben willst.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              @hhcm,

              erstmal vielen Dank. Verstanden habe ich es wohl wirklich nicht, gebe ich ja auch offen zu. Warum ich es dennoch nutze? Weil ich schon x-mal alles über Klassen gelesen habe (Klasse Auto), ich aber einen direkten Bezug zur Praxis brauche, wenn ich es jemals verstehen will. Deswegen versuche ich es halt.

              Ok, nun zur Frage:

              PHP-Code:
              $methods get_class_methods($DBConection);

              echo 
              "<pre>";
              print_r($methods); 
              Als Ergebnis kommt rein gar nichts.

              Und wenn ich ein $result hätte, dann müsste doch auch


              PHP-Code:
              mysql_data_seek($select0); 
              funktionieren. Geht aber nicht. Und genauso müsste ich doch fragen wenn
              $select dann anzeigen sonst Meldung keinen Daten vorhanden, aber das geht auch nicht.

              Oh man ich habe mich total verrannt.

              Is doch totaler humbug. Entweder ist die Klasse schrott oder du hast sie nicht verstanden
              Warum ist das eigentlich humburg und wie wäre es richtig?

              Kommentar


              • #22
                Wenn du trotzdem noch mysql_fetch_array benutzt, anstatt die fetch methode der Klasse, ist es humbug.

                Wie gesagt.. Entweder nutzt du die klasse nicht richtig, oder die Klasse ist schrott..

                Wie schauen denn die einzelnen methoden der Klasse aus?. Poste diese doch mal..

                function query($querystring)

                Welche gibts noch ?
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #23
                  PHP-Code:
                  /* This is a MYSQL Connection Class */

                  $DBConnection = new mysqlconnection(); 


                  class 
                  mysqlconnection

                      var 
                  $dbhost "xxx"
                      var 
                  $dbname "xxx"
                      var 
                  $dbuser "xxx"
                      var 
                  $dbpass "xxx"
                    
                  // Connect to DB-Server
                  function connect(){ 
                  $this->connection mysql_connect($this->dbhost$this->dbuser,    
                  $this->dbpass) or die("{connect} Database Error: ".mysql_errno()." : ".mysql_error()); 




                  // Select the Database
                  function select_db(){
                  $this->select_database mysql_select_db($this->dbname$this->connection) or die("{select_db} Database Error: ".mysql_errno()." : ".mysql_error()); 
                  }


                          
                  // Close Connection to DB-Server
                  function mysqlclose(){ 
                   
                  $this->connection mysql_close(); 
                   } 



                  // Create Querystring for Database
                  function query($querystring)

                  if (
                  $this->connection == false)
                  {
                  $this->connect();
                              
                  $this->select_db(); 
                          }
                          if (
                  $this->connection == false) return; 
                          
                  $res =  mysql_query($querystring$this->connection) or die("{query} Database Error : ".mysql_errno()." : ".mysql_error()); 
                      return 
                  $res
                      } 
                  }


                  ?> 
                  Das ist alles.

                  Kommentar


                  • #24
                    Ok, das ist scheinbar nur eine Klasse zur Verbindung (+ Query )


                    PHP-Code:
                    $sql "SELECT * FROM `tabelle`";

                    if (
                    $result $DBConnection->query($sql))
                    {
                        
                    // Query ausgeführt
                    } else {
                       
                    //  Keine Verbindung zur Datenbank

                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar


                    • #25
                      Ok, so:
                      if ($result = $DBConnection->query($sql)) bekomme ich also doch wieder mein $result. Endlich. Danke dafür.

                      Wenn du trotzdem noch mysql_fetch_array benutzt, anstatt die fetch methode der Klasse, ist es humbug.
                      Die Klasse bietet wohl nicht mehr also muss ich dann doch nach dem:

                      PHP-Code:
                      if ($result $DBConnection->query($sql))
                      {
                        while (
                      $Namen mysql_fetch_array($select))
                        { 
                      einsetzen. Oder?

                      Kommentar


                      • #26
                        Nicht ganz

                        mysql_fetch_array($select) .. Nicht $select sondern??????
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar


                        • #27
                          $result?

                          Nicht schlagen...

                          Aber es ist richtig das nur das so geht, ja? Oder kann ich da noch was verändern und besser machen?

                          Neues Problem, kann es sein das die Klasse nicht unter PHP-Version: 4.4.2
                          läuft? Habe es gerade mal auf den Server gepackt und es geht nicht.
                          Zuletzt geändert von Luka; 15.08.2006, 11:27.

                          Kommentar


                          • #28
                            Ich schlag dich nicht wegen dem $result? aber wegen dem

                            GEHT NICHT

                            WAS geht nicht?
                            Fehlermeldungen?

                            error_reporting(E_ALL) über deinem Script?
                            gruss Chris

                            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                            Kommentar


                            • #29
                              upps. Sorry.

                              {query} Database Error : 1146 : Table tblTeam' doesn't exist

                              Also die Tabellen sind alle vorhanden, habe das geprüft. Dennoch kommt die Meldung. Egal welche Tabelle ausgesucht wird, immer doesn't exist.

                              Kann es an der Klasse und PHP 4.4.2 liegen?

                              Kommentar


                              • #30
                                Nein.. Der Fehler ist ziemlich eindeutig..

                                Egal was du jetzt sagst, aber die Tabelle existiert nicht.

                                Groß/Kleinschreibung?
                                gruss Chris

                                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                                Kommentar

                                Lädt...
                                X