Mit DB Klasse arbeiten

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

  • Mit DB Klasse arbeiten

    Hi,

    ich habe gerade eine DB Klasse im Netz gefunden und versuche mich nun langsam damit auseinanderzusetzen. Ich greife so wie unten aufgeführt auf die DB zu.

    PHP-Code:
    $select=$DBConnection->query("SELECT * FROM tblNamen");
    while (
    $Namen mysql_fetch_array($select))
    {
       echo 
    $Namen['Vorname'];

    Bisher sah das alles immer so aus:

    PHP-Code:
    $sql="SELECT  * FROM tblNamen";
    $abfrage=mysql_query($sql)or die(mysql_error().$errordatabase);

    if(
    $abfrage)
    {
    while (
    $Namenmysql_fetch_array($abfrage))
    {
       echo 
    $Namen['Vorname'];


    Nun mal ein paar blöde Fragen:

    1. wie kann ich mir den SQL Befehl ausgeben lassen?
    Damals musste ich nur echo $sql eintippen. (Wichtig bei Fehlersuche)

    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??

    3. Wenn ich nur 1 Namen ausgeben lassen möchte, brauche ich dann dennoch :
    while ($Namen = mysql_fetch_array($select))
    {
    }
    Im SQL Befehl schreibe ich dann immer LIMIT 1, aber mich interessiert, ob ich halt die while Schleife brauche oder wie man das sonst löst.

    4. Wenn ich nach einem Insert eine Meldung ausgeben möchte das der Eintrag erfolgreich erfolgt ist, wie macht man das genau? Also das man wirklich sicher sein kann das der Datensatz geschrieben wurde? Gibt es in MySQL irgeneine Meldung vielleicht ein TRUE das vom Insert zurückgegeben wird?

    Ich weiss, das sind viele Fragen, aber momentan hänge ich ein wenig an diesen Dingen fest und würde so gerne eine Lösung wissen. Ich hoffe jemand von Euch hat Rat.

    Vielen Dank im Voraus.

    Gruss Luka

  • #2
    zu 1. $sql kannst du immer noch verwenden und der methode als parameter übergeben. was anderes hast du vorher auch nicht gemacht.

    zu den anderen punkten muss ich sagen, dass die class hierfür auch entsprechende methoden haben sollte. einfach mal reinschauen. wenn die class das nicht hat, suche dir eine andere/bessere class im netz.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hi Abraxax,

      danke für die schnelle Antwort. Problem ist das ich nun zum ersten Mal mit Klassen arbeite, bin mir also nicht ganz si sicher was du meinst.

      Wenn ich echo $select beim 1. Ansatz probiere bekomme ich nur
      Resource id #10 raus.

      Wie also
      der methode als parameter übergeben
      ??

      Kommentar


      • #4
        na, genauso wie du es mit mysql_query() auch machst.

        ob du

        $sql = 'SELECT....

        jetzt in mysql_query($sql); verwendest, oder in $DBConnection->query($sql);

        Kommentar


        • #5
          Verstehe ich immer noch nicht. Wenn ich einfach mal den SQL Befehl ausgeben möchte, wie muss ich das denn dann machen?

          Weil wie gesagt ich bekomme bei

          $select=$DBConnection->query("SELECT * FROM tblNamen");
          echo $select

          nur Resource id #10 raus.

          Kommentar


          • #6
            Oh man,

            du machst doch auch nicht

            $res = mysql_query('SELECT * FROM...');
            echo $res;

            oder?

            Jetzt verstanden?

            Kommentar


            • #7
              Sorry. Stimmt, aber wie kann ich dennoch nur den SQL Befehl ausgeben?
              Manchmal mache ich das zur Fehlerkontrolle. (Bei aufwändigen Joins)

              Also mit Klassen tue ich mich wirklich schwer.

              (Muss jetzt schnell zum Sport, aber vielleicht hat jemand noch ein Paar Tips damit ich es dennoch verstehe)
              Zuletzt geändert von Luka; 01.08.2006, 19:32.

              Kommentar


              • #8
                Das hat absolut nichts mit klassen zu tun. Eigentlich noch nicht mal mit Programmieren. Das ist logisches denken (was wiederum zum Programmieren unerlässlich ist).

                PHP-Code:
                $sql "SELECT * FROM tblNamen"
                $select=$DBConnection->query($sql); 
                Welche war würdest du jetzt ausgeben???

                Kommentar


                • #9
                  $sql

                  Kommentar


                  • #10
                    geht doch!

                    Kommentar


                    • #11
                      Na ja, das ist ja auch irgendwie klar, aber diese Geschichte:

                      $select=$DBConnection->query("SELECT * FROM tblNamen");


                      Wie kann ich darauf zugreifen mit einem echo? Geht das dann nicht so einfach?

                      Muss ich das aufbröseln so wie Du es beschrieben hast?

                      PHP-Code:
                      $sql "SELECT * FROM tblNamen"
                      $select=$DBConnection->query($sql); 
                      Und wie sieht es mit den anderen Fragen aus? Da einen Tip vielleicht?

                      Kommentar


                      • #12
                        Re: Mit DB Klasse arbeiten

                        Original geschrieben von Luka
                        1. wie kann ich mir den SQL Befehl ausgeben lassen?
                        Damals musste ich nur echo $sql eintippen. (Wichtig bei Fehlersuche)
                        hat tobiaz beantwortet.

                        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??
                        bitte? vielleicht einfach ein else zu dem if dazu?

                        3. Wenn ich nur 1 Namen ausgeben lassen möchte, brauche ich dann dennoch :
                        while ($Namen = mysql_fetch_array($select))
                        {
                        }
                        Im SQL Befehl schreibe ich dann immer LIMIT 1, aber mich interessiert, ob ich halt die while Schleife brauche oder wie man das sonst löst.
                        lass die schleife weg, eine zuordnung von $namen genügt.

                        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.

                        Also das man wirklich sicher sein kann das der Datensatz geschrieben wurde?
                        du fragst die tabelle noch mal explizit ab, ob es diesen eben eingetragenen eintrag gibt.

                        Kommentar


                        • #13
                          Re: Re: Mit DB Klasse arbeiten

                          Original geschrieben von penizillin
                          du fragst die tabelle noch mal explizit ab, ob es diesen eben eingetragenen eintrag gibt.
                          und wieso nicht per affected_rows?
                          MfG
                          aim
                          Lies mich jetzt!
                          - OT-Tags-Liebhaber und BB-Code-Einrücker -

                          Kommentar


                          • #14
                            Original geschrieben von Luka
                            Wie kann ich darauf zugreifen mit einem echo? Geht das dann nicht so einfach?
                            Muss ich das aufbröseln so wie Du es beschrieben hast?
                            wie machst du es denn bei
                            PHP-Code:
                            mysql_query("SELECT * FROM tblNamen"); 
                            ????
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              Zu mal zusammenfassen. Ich habe also den neuen Ansatz:

                              PHP-Code:
                              $select=$DBConnection->query("SELECT * FROM tblNamen");
                              while (
                              $Namen mysql_fetch_array($select)) 
                              1. wie kann ich mir den SQL Befehl ausgeben lassen?
                              - Geht nun nicht mehr mit echo $select., damit es wieder funktiniert muss ich diese Screibweise verwenden:

                              $sql = "SELECT * FROM tblNamen"
                              $select=$DBConnection->query($sql);



                              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??
                              - Ich glaube das wurde noch nicht beantwortet.


                              3. Wenn ich nur 1 Namen ausgeben lassen möchte, brauche ich dann dennoch :
                              while ($Namen = mysql_fetch_array($select))
                              - NEIN. lass die schleife weg, eine zuordnung von $namen genügt.


                              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?

                              Vielen, vielen Dank erstmal für die bisherigen Tips.

                              Kommentar

                              Lädt...
                              X