Thomann: Mysql Class

Hallo,

ich stelle mir grade die Frage wie ich eine Klasse aufbauen soll die sowohl einen einzelnen Request by ID bearbeiten kann als auch ganze Listen ausgeben kann.

So wie ich Klassen kennengelernt habe dienen Sie dazu results immer gleich auszugeben, also ZB

class angebot{

function angebot($id){

$result = qry("SELECT " .
    (...)
    "preis, " .
    "FROM angebot WHERE id='".$id."'");

$this->preis = irgend_eine_funktion($row[preis]);
    (...)

}

das ganze liefert aber nur das ergebnis für WHERE id='".$id."'.

wie gestalte ich das ganze wenn ich auch listen ausgegeben haben möchte die die Struktur der class-function angebot "durchläuft"?

Versteht man mich?

Danke
Thomann

  1. Nachtrag:

    Damit meine ich nicht die Abfrage an sich sondern, eine clevere Lösung in der class...

    Thomann

  2. Hi!

    ich stelle mir grade die Frage wie ich eine Klasse aufbauen soll die sowohl einen einzelnen Request by ID bearbeiten kann als auch ganze Listen ausgeben kann.

    Sinnvoll ist bei einer Liste ein Array mit den Datensätzen, und die wiederum jeweils als ein Array mit Feldern und Inhalten. Ein einzelnes Ergebnis ist ein Spezialfall einer Liste mit nur einem Element.

    So wie ich Klassen kennengelernt habe dienen Sie dazu results immer gleich auszugeben, also ZB

    Was verstehst du unter "gleich"? Zeitlich gesehen oder gleicher Inhalt?

    "FROM angebot WHERE id='".$id."'");

    Kontextwechsel nicht missachten!

    das ganze liefert aber nur das ergebnis für WHERE id='".$id."'.

    Das kann man ja ändern.

    wie gestalte ich das ganze wenn ich auch listen ausgegeben haben möchte die die Struktur der class-function angebot "durchläuft"?
    Versteht man mich?

    Nein.

    Lo!

  3. Hallo,

    du durchläufst mit einer Schleife dein Ergebnis was du von der Datenbank erhalten hast! Also, in jeden Durchlauf erzeugst du ein neues Objekt und weist ihm dein gewünschten Wert zu und verpackst es dann in einem Array.

    class foo{
       public function irgendeine_methode(){
          $result = qry("SELECT " .........)
          $inhalt = array();

    foreach($results as $result){
            $objekt = new objekt();
            $objekt->setPreis($result['preis'];
            $objekt->.....
            $objekt->.....
            $inhalt[] = $objekt
          }
          return $inhalt;
       }
    }

    Die Ausgabe erfolgt ebenso einfach!

    $foo = new Foo();

    foreach($foo->irgendeine_methode() as $result){
       echo $result->getPreis() . "<br/>";
    }

    Gruß