Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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]

Geschrieben

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 ?

Geschrieben

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).

Geschrieben
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

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...