Hi,
$eineListe= array();
while($row = $result->fetch_assoc()){
$foo = new MyClass($row['id'], ...);
//die instanz '$foo' meiner Klasse wurde erzeugt und die Eigenschaften haben die im Konstruktor zugewiesenen Werte, habe ich mit Testausgaben überprüft//das Objekt an $eineListe anhängen
$eineListe[] = $foo;
}
>
> 1. Mache ich das soweit richtig?
Sieht soweit korrekt aus. Falls du sicher bist, dass die Felder deines Resultsets die selben Namen haben wie die Member deiner Klasse, dann kannst du auch
~~~php
$items = array();
while ($r = $res->fetch_object('MyClass')) {
$items[] = $r;
}
schreiben. Hat aber den Nachteil, dass dann deine SQL-Queries eng an deine Klasse gebunden sind. Ich habe dies eine zeitlang so genutzt, dass die abfragenden Methoden statische Methoden der Klasse waren, würde dies aber heute nicht mehr unbedingt so machen.
class MyClass {
private $member1;
private $member2;
public static getItems(mysqli $dbh) {
$res = $dbh->query("SELECT t.abc member1, t.xyz member2 FROM myTable t");
$items = array();
while ($r = $res->fetch_object('MyClass')) {
$items[] = $r;
}
return $items;
}
}
$myItems = MyClass::getItems($dbh);
Bis die Tage,
Matti