kills Geschrieben 5. Juni 2005 Teilen Geschrieben 5. Juni 2005 Hallo zusammen, folgendes script: Klasse: class OOMediaCategory { function OOMediaCategory( $id = null) { if ( $id === null) { return; } $query = 'SELECT * FROM rex_file_category WHERE id = '. $id; $sql = new sql(); // $sql->debugsql = true; $result = $sql->get_array( $query); $result = $result[0]; if ( count( $result) == 0 ) { trigger_error( 'No OOMediaCategory found with id "'. $id .'"', E_USER_ERROR); } $this->_id = $result['id']; $this->_parent_id = $result['re_id']; $this->_name = $result['name']; $this->_path = $result['path']; $this->_hide = $result['hide']; $this->_createdate = $result['createdate']; $this->_updatedate = $result['updatedate']; $this->_createuser = $result['createuser']; $this->_updateuser = $result['updateuser']; $this->_children = null; $this->_files = null; } function &getRootCategories( $ignore_offlines = true) { $qry = 'SELECT id FROM rex_file_category WHERE re_id = 0'; $sql = new sql(); $sql->setQuery( $qry); $result = $sql->get_array(); $rootCats = array(); if ( is_array( $result)) { foreach ( $result as $row) { $id = $row['id']; $rootCats[] =& new OOMediaCategory( $id); } } return $rootCats; } } [/PHP] Aufruf: [PHP] $root = OOMediaCategory::getRootCategories(); var_dump($root) Ausgabe: object(oomediacategory)(11) { ["_id"]=> string(1) "1" ["_parent_id"]=> string(1) "0" ["_name"]=> string(4) "test" ["_path"]=> string(1) "|" ["_hide"]=> string(1) "0" ["_createdate"]=> string(10) "1117215439" ["_updatedate"]=> string(10) "1117215439" ["_createuser"]=> string(3) "jan" ["_updateuser"]=> string(3) "jan" ["_children"]=> NULL ["_files"]=> NULL } object(oomediacategory)(11) { ["_id"]=> string(1) "2" ["_parent_id"]=> string(1) "0" ["_name"]=> string(6) "mytest" ["_path"]=> string(1) "|" ["_hide"]=> string(1) "0" ["_createdate"]=> string(10) "1117215446" ["_updatedate"]=> string(10) "1117215446" ["_createuser"]=> string(3) "jan" ["_updateuser"]=> string(3) "jan" ["_children"]=> NULL ["_files"]=> NULL } [/PHP] Wie kann es sein, dass mir PHP 2 Objekte mit der gleichen Objekt ID anlegt? Die beiden Objekte haben ja unterschiedliche Attribute, aber warum die gleiche Objekt-ID? Ich habe bereits versucht das ganze ohne Referenzen zu machen, aber das Problem bleibt bestehen. Aufgrund dieses Phänomens habe ich Probleme im weiteren Ablauf meines Scripts... Weiss jemand rat? Gruß, Markus PS: Windows XP (neuster Patchlevel) XAMP 1.4.11 + Apache 2.0.52 + MySQL 4.1.8 + PHP 5.0.3 + PHP 4.3.10 + PEAR + PHP-Switch win32 1.0 (von Apachefriends, man nehme die "php-switch.bat") + XAMPP Security 1.0 + MiniPerl 5.8.3 + SQLite 2.8.15 + OpenSSL 0.9.7e + PHPMyAdmin 2.6.0 pl3 + ADODB 4.54 + Mercury Mail Transport System for Win32 and NetWare Systems v4.01a + FileZilla FTP Server 0.9.4d + Webalizer 2.01-10 + Zend Optimizer 2.5.7 Dump der MySQL Tabelle: [code] INSERT INTO `rex_file_category` VALUES (1, 'test', 0, '|', 0, 1117215439, 1117215439, 'jan', 'jan'); INSERT INTO `rex_file_category` VALUES (2, 'mytest', 0, '|', 0, 1117215446, 1117215446, 'jan', 'jan'); [/code] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 6. Juni 2005 Teilen Geschrieben 6. Juni 2005 ich versuche gerade hinter den Sinn der ObjectID zu kommen, wo ist denn dokumentiert das da in den () die ObjectID steht ? ^^ soweit ich das sehe benutzt du einen SQL-Primärschlüssel um die Objekte einzulesen, warum verwendest du den nicht weiter ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 6. Juni 2005 Teilen Geschrieben 6. Juni 2005 Wo bitte steht denn da eine Objekt-ID? Meines Erachtens gibt var_dump die Grösse (in diesem Fall die Anzahl der Attribute an: also in diesem Fall 11). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 6. Juni 2005 Autor Teilen Geschrieben 6. Juni 2005 ich versuche gerade hinter den Sinn der ObjectID zu kommen, wo ist denn dokumentiert das da in den () die ObjectID steht ? ^^ soweit ich das sehe benutzt du einen SQL-Primärschlüssel um die Objekte einzulesen, warum verwendest du den nicht weiter ? hmm :cool: Wo bitte steht denn da eine Objekt-ID? Meines Erachtens gibt var_dump die Grösse (in diesem Fall die Anzahl der Attribute an: also in diesem Fall 11). Ich glaub ich hab das ganze missinterpretiert und den Fehler an der falschen Stelle gesucht.... Danke für den Hinweis. Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
akkie Geschrieben 7. Juni 2005 Teilen Geschrieben 7. Juni 2005 Hi Vieleicht kannst du es ja für Später mal gebrauchen. Eine eindeutige ObjektID gibt es erst ab PHP5. Man kann sich diese über class objektID { function objektID() { //Gibt id ID eines Objektes aus echo $this; } } $id = new objektID(); [/PHP] ausgeben lassen. Mfg Akkie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 8. Juni 2005 Autor Teilen Geschrieben 8. Juni 2005 Hi, danke für den Hinweis, aber das wusste ich bereits Ich hab übrigens den Fehler dann weiter unten im Script gefunden. Es gab ein Problem, wenn man ein Array mit foreach durchläuft und den "value" diese foreach dann per Referenz in ein neues Objekt anlegen möchte. Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.