login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dataobject class

Offline nemesiskoen - 24/12/2005 14:22 (laatste wijziging 24/12/2005 14:31)
Avatar van nemesiskoenGouden medaille

PHP expert
Ik ben bezig met een dataobject class.
Een heel uitgebreide waarbij alles eigenlijk automatisch gegenereert wordt.
Ik heb enkel 1 klein (raar) probleempje.
Misschien kan een van jullie dit verklaren.

Ik maak de class recursief zodat er ook query's kunnen ingevoerd worden zonder WHERE statement. Het probleem is dat ik daarvoor dan een array wil maken van de class zelf binnen de class en dit lukt niet zo goed.
Het aanmaken lukt perfect. Als ik vlak na het aanmaken een DUMP gooi van het net aangemaakte object lukt het perfect. Maar als ik dan een DUMP van de array vraag dan zegt hij dat de array NULL is (dus niet bestaat). Terwijl hij vlak ervoor wel een element hiervan laat zien.

  1. <?php
  2. var_dump($this->$tabel[$data[$this->key]]);
  3. echo "<br />";
  4. var_dump($this->$tabel);
  5. echo "<br />";
  6. var_dump($this->$tabel[$data[$this->key]]);
  7. echo "<br />";
  8. var_dump($this->$tabel);
  9. echo "<br />";
  10. ?>


output:
  1. object(dataobject)#2 (6) { ["data"]=> array(2) { ["foo"]=> string(3) "bar" ["id"]=> string(1) "1" } ["tabel"]=> string(4) "test" ["key"]=> string(2) "id" ["een"]=> bool(true) ["foo"]=> string(3) "bar" ["id"]=> string(1) "1" }
  2. NULL
  3. object(dataobject)#2 (6) { ["data"]=> array(2) { ["foo"]=> string(3) "bar" ["id"]=> string(1) "1" } ["tabel"]=> string(4) "test" ["key"]=> string(2) "id" ["een"]=> bool(true) ["foo"]=> string(3) "bar" ["id"]=> string(1) "1" }
  4. NULL


Heel gek dus.
Even wat meer code:
  1. <?php
  2. function dataobject($tabel, $where = NULL) {
  3. $this->tabel = $tabel;
  4. $this->key = $this->getprimarykey();
  5. //bovenstaande werkt zeker dus daar zit de fout niet
  6. if(count($where) == 0) {
  7.  
  8. $result = mysql_query("SELECT * FROM ". $tabel);
  9. while($data = mysql_fetch_assoc($result) ) {
  10. $this->$tabel[$data[$this->key]] = new dataobject($tabel, $this->key ." = ". $data[$this->key]);
  11. var_dump($this->$tabel[$data[$this->key]]);
  12. echo "<br />";
  13. var_dump($this->$tabel);
  14. echo "<br />";
  15. var_dump($this->$tabel[$data[$this->key]]);
  16. echo "<br />";
  17. var_dump($this->$tabel);
  18. echo "<br />";
  19. }
  20. $this->een = false;
  21.  
  22. } else {
  23. //irrelevant
  24. }
  25. }
  26. ?>


Hopelijk heeft iemand een idee wat ik verkeerd doe, want ik snap echt niet hoe zoiets kan. Ik roep een element van de array aan: geen probleem. Ik roep de array aan => array bestaat niet...

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.213s