Ankündigung

Einklappen
Keine Ankündigung bisher.

Klassen?!

Einklappen

Neue Werbung 2019

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

  • Klassen?!

    Hallo ich bin neu hier und muß gleich ein paar Fragen stellen!

    Ich setze mich seit einigen Tagen mit Klassen auseinander und
    habe schon erste versuche gestartet! Bis jetzt laufen die Sachen,
    aber mein Verständnis für Klassen reichen noch nicht ganz!
    Ich habe mir auch fast jeden (nur fast ) Beitrag über Klassen
    angeschaut!

    Meine erste Klasse, die ich geschrieben habe, stellt eine Verbindung zur Datenbank her. Soweit so gut! Jetzt hab ich mir ein paar Beispielscripts angesehen und die haben ein paar Funktionen zusätzlich in der Klasse.

    Beispiel:
    <?
    class MySQL{



    function MySQL() {}


    function insert (string)


    function select (string)


    function update (string)


    function delete (string)


    function query (string)

    }
    ?>
    Was kann mit den Funktionen query, delete, update usw. definieren?
    Oder bzw. was erleichtern mir diese Funktionen später?
    Ich habe verstanden das eine Klasse eine Ansammlung von vordefinierten Variablen und Functionen sind!
    Wie kann ich aber dann im Hauptscript (z.B index.php) die jeweilige Funktion ansprechen?

    Vielleicht kann mir jemand weiterhelfen?

    der alte mann


  • #2
    Insert == einscheiben
    Update == Überschreiben
    Delete == Löschen
    Select == Auslesen
    Query == wird benutzt um Daten in einer Variablen zu speichern.

    z.B.

    $abfrage = "SELECT * FROM Tabelle";
    $ergebniss = mysql_query($abfrage);

    greets JEGO
    Gruß JEGO

    Ein PHP Script tut, was Du schreibst, nicht was Du willst.

    Kommentar


    • #3
      Danke für die schnelle Antwort!

      Jetzt nehmen wir mal SELECT!

      Beispiel aus der Klasse:
      function select ($sql, $debug = false)
      {
      if(empty($sql)) return false;
      if(!eregi("^select",$sql))
      {
      return false;
      }
      if(empty($this->CONNECTION)) return false;
      $conn = $this->CONNECTION;
      if ($debug) echo $sql;
      @$results = mysql_query($sql,$conn)
      or die ("

      \n\nInvalid SQL-query:\n\n

      <PRE>$sql</PRE>\n\n

      MySQL said: " . mysql_error() . "

      ");
      if( (!$results) or (empty($results)) ) return false;
      $c = 0;
      $data = array();
      while ( $row = mysql_fetch_array($results))
      {
      $data[$c] = $row;
      $c++;
      }
      mysql_free_result($results);
      $this->rows = sizeof($data);
      return $data;
      }
      Was macht die Funktion? Irgendwie fehlt mir da jetzt das Verständnis!
      Und was bringt mir das im Nachhinein also in der Index?

      Kommentar


      • #4
        Kann mir keiner weiterhelfen?

        Kommentar


        • #5
          Zitat von alter mann
          Was macht die Funktion?
          Holt deine gewünschten Daten aus der DB und gibt das ganze als Mehrdimensionalen Array (mit ASSOC/INDEX-Gemisch) zurück.

          Zitat von alter mann
          Und was bringt mir das im Nachhinein also in der Index?
          Vermutlich nicht viel, da es evtl. ineffizient ist.

          Kommentar


          • #6
            Diese Funktion schreibt die Daten in ein Array und gibt das zurück!

            Ansprechen tust du das so:

            Code:
            klasse->function(vars)
            wilko

            Kommentar


            • #7
              Was meint Ihr wenn ich eine Community aufbauen will, würdet Ihr das mit Klassen machen oder lieber den prozeduralen Weg gehen?
              Ich seh da keinen Vorteil von Klassen! Oder seh ich das falsch?

              Kommentar


              • #8
                Zitat von alter mann
                Was meint Ihr wenn ich eine Community aufbauen will, würdet Ihr das mit Klassen machen oder lieber den prozeduralen Weg gehen?
                Ich seh da keinen Vorteil von Klassen! Oder seh ich das falsch?
                Ja. Ein Programmierer muß faul sein, wenn er effizient programmieren will. Die gekonnte Verwendung von Klassen (OOP) vereinfacht die Entwicklung erheblich. Zumal man ja auch auf PEAR zurückgreifen kann und einige Fahrräder nicht noch mal erfinden muß.

                Entscheidend ist aber immer die Laufzeit des Scriptes. User warten höchst ungern länger als 1-2 sec.

                Kommentar


                • #9
                  Zitat von meikel
                  Ja. Ein Programmierer muß faul sein, wenn er effizient programmieren will.
                  dieser spruch wurde uns von unseren dozenten eingefercht .. und um allen kritischen bemerkungen zuvorzukommen ..

                  für eine vorlesung haben wir da sehr viel gelernt ...
                  privater Blog

                  Kommentar


                  • #10
                    Wo macht es den Sinn Klassen zu schreiben und wo nicht?
                    Bei einer Datenbankverbindung finde ich braucht man keine Klasse oder?

                    Ich muß jetzt nochmal nachhaken ob ich das richtig verstehe:
                    Eine Klasse besteht aus Eigenschaften und Methoden.
                    Das Objekt resultiert aus der Klasse und ihre Methoden, ist das richtig?
                    Und das Ergebnis wird dann gegebenenfalls in ein Array geschrieben, ist das richtig?

                    Könnte ich dann sag ich mal eine Userregistrierung als Klasse schreiben?

                    Kommentar


                    • #11
                      ein objekt ist eine variable vom typ der klasse.
                      initialisiert wird es durch den aufruf eines konstruktors der klasse. den musst du nicht unbedingt explizit angeben ..
                      schau mal was ein standardkonstruktor ist ..

                      ich verwende immer eine klasse MySQL .. mit der ich alle datenbankoperationen ausführe.

                      vorteil .. ich kann diese klasse in JEDEM projekt verwenden ...

                      überleg dir mal, ob du klassen so anwenden kannst, ob es sich für dich lohnt .. ansonsten empfehle ich dir z.b. mit java zu arbeiten .. da lernst du sehr schnell den umgang mit klassen und objekten.

                      grüße ben
                      privater Blog

                      Kommentar


                      • #12
                        wo ihr grad beim thema mysql-klassen seid, da hätte ich mal ne frage: und zwar hab ich mir auch so eine gemacht. am anfang werden ja die variablen erzeugt, wenn ich aber die variable
                        var error = mysql_error();
                        benutzen will, kommt ein fehler.
                        wenn ich die variable so setze:
                        var error = mysql_error;
                        kommt zwar keine fehlermeldung, es wir aber auch statt dem mysql-fehler einfach der text "mysql_error" ausgegeben.

                        Kommentar


                        • #13
                          Zitat von alter mann
                          Wo macht es den Sinn Klassen zu schreiben und wo nicht?
                          Bottum-up: Bei allen wiederverwertbaren Algorithmen verwendet man Funktionen.

                          Top-Down: Man zerlegt das Problem in Blöcke und beschreibt deren Eigenschaften (Vorstufe für OOP).

                          Klassen sind da angebracht, wenn man effizient auf Blöcke zugreifen will. Noch effizienter isses, wenn man seine Klassen so programmiert, daß sie wiederverwertbar sind. Das spart Zeit.

                          Bei einer Datenbankverbindung finde ich braucht man keine Klasse oder?
                          Wenn Du nur vorhast, einmal im Leben ein Script zu schreiben, daß eine DB Verbindung benötigt, nicht. Wenn Du aber viele Scripte schreiben willst, die alle mal 'ne DB Verbindung benötigen, spart Dir eine Klasse mächtig viel Arbeit.

                          Ich muß jetzt nochmal nachhaken ob ich das richtig verstehe:
                          Eine Klasse besteht aus Eigenschaften und Methoden.
                          Das Objekt resultiert aus der Klasse und ihre Methoden, ist das richtig?
                          Jou.

                          Und das Ergebnis wird dann gegebenenfalls in ein Array geschrieben, ist das richtig?
                          Frage: was verstehst Du unter 'Ergebnis'?

                          Könnte ich dann sag ich mal eine Userregistrierung als Klasse schreiben?
                          Ja. In PEAR gibts sowas schon:
                          http://pear.php.net/package/LiveUser

                          Ich würde Dir aber eine eigene Klasse vorschlagen, die die DB Tabelle von PEAR :: Auth füttert.

                          Da PEAR :: Auth -> PEAR :: DB benötigt, haste die DB Klasse inclusive.

                          Und wenn Du dann noch eine Template Klasse nutzt:
                          http://pear.php.net/manual/en/packag...emplate-it.php

                          haste jede Menge Code gespart.

                          Für Email Versand lege ich Dir das nahe:
                          http://pear.php.net/manual/en/packag....mail-mime.php

                          Das macht dann weniger Streß, weil das Teil korrekt codierte Emails verschickt.

                          Kommentar


                          • #14
                            @Ben

                            Verwendest Du bei Deiner MySQL Klasse auch die Funktionen für select, update, insert usw?

                            Wenn ja was macht das für Dich leichter?
                            Hier ein Beispiel:
                            $var=$DB->sql($designtable,"*"," WHERE status='1'");
                            Hier wird eine Abfrage gestartet, warum ist das nicht das gleiche wie:

                            $var = ("SELECT "*" FROM user WHERE status='1'");

                            Was ist hier der Unterschied und vielleicht verstehe ich es dann!

                            Kommentar


                            • #15
                              Zitat von alter mann
                              Verwendest Du bei Deiner MySQL Klasse auch die Funktionen für select, update, insert usw?
                              Sowas wäre Unfug. Wenn, dann verwendet man Methoden, die aus einem assoziativem Array zB. ein UPDATE String basteln, den abschickt, prüft, ob das UPDATE erfolgreich war und, je nach Aufruf, entweder ein INSERT INTO anschließen läßt und die LAST_INSERT_ID zurückmeldet oder false zurückgibt.

                              Hier mal ein ganz simples Demo:
                              http://test.php-help.info/template/

                              Kommentar

                              Lädt...
                              X