Object von einem Objekt

Object von einem Objekt

am 14.09.2006 21:38:29 von Julian Bessenroth

Hi Folks,

stecke irgendwie gerade fest. Also, ich habe eine Klasse in der ich
eine in der ich eine SQL-Abfrage mache.

$this->sql="SELECT ... ";
$this->result=MYSQL_QUERY($this->sql) or die(mysql_error());
$this->row = mysql_fetch_object($this->result);

Der Name des Feldes, welches abgerufen werden soll ist ebenfalls eine
Var des Objektes.

$this->feldname="id";

Wie aber komme ich nun an "$row->id"?

Stelle mich gerade wohl zu bloed an ...

Danke im Voraus.

Julian

Re: Object von einem Objekt

am 14.09.2006 21:55:07 von Jens Himmelrath

Julian Bessenroth schrieb:
> Hi Folks,
>
> stecke irgendwie gerade fest. Also, ich habe eine Klasse in der ich
> eine in der ich eine SQL-Abfrage mache.
>
> $this->sql="SELECT ... ";
> $this->result=MYSQL_QUERY($this->sql) or die(mysql_error());
> $this->row = mysql_fetch_object($this->result);
>
> Der Name des Feldes, welches abgerufen werden soll ist ebenfalls eine
> Var des Objektes.
>
> $this->feldname="id";
>
> Wie aber komme ich nun an "$row->id"?

Hmm, ich benutze zwar immer mysql_fetch_assoc, aber laut
http://de.php.net/mysql_fetch_object müsste es in deinem Fall über
$this->row->id gehen.

Was hat das $this->feldname damit zu tun?

regards,
Jens

Re: Object von einem Objekt

am 14.09.2006 22:12:57 von Julian Bessenroth

Hi,

Jens Himmelrath schrieb:

> > $this->row =3D mysql_fetch_object($this->result);

> > $this->feldname=3D"id";
> >
> > Wie aber komme ich nun an "$row->id"?
>
> Hmm, ich benutze zwar immer mysql_fetch_assoc, aber laut
> http://de.php.net/mysql_fetch_object müsste es in deinem Fall über
> $this->row->id gehen.

ja klar geht das, aber mein Feld heisst nicht jedes Mal "id", sonderm
vielleicht beim naechsten table "banane" oder ...

> Was hat das $this->feldname damit zu tun?

Hier sage ich, wie das Feld/die Spalte in dem DB-table heisst. Also
eigentlich moechte ich $this->row->[$this->feldname] ...

Danke im Voraus=20

Julian

Re: Object von einem Objekt

am 14.09.2006 22:13:09 von Jens Himmelrath

Julian Bessenroth schrieb:
> Hi Folks,
>
> stecke irgendwie gerade fest. Also, ich habe eine Klasse in der ich
> eine in der ich eine SQL-Abfrage mache.
>
> $this->sql="SELECT ... ";
> $this->result=MYSQL_QUERY($this->sql) or die(mysql_error());
> $this->row = mysql_fetch_object($this->result);
>
> Der Name des Feldes, welches abgerufen werden soll ist ebenfalls eine
> Var des Objektes.
>
> $this->feldname="id";
>
> Wie aber komme ich nun an "$row->id"?

Geht in jedem Fall über einen Zwischenschritt:

$tmp_field = $this->fieldname;
echo $this->row->$tmp_field;

Das geht bei mir auch nicht:

echo $this->row->$this->fieldname;

Wieso eigentlich nicht?

regards,
Jens

Re: Object von einem Objekt

am 14.09.2006 22:14:06 von Jens Himmelrath

Julian Bessenroth schrieb:
>
> Hi,
>
> Jens Himmelrath schrieb:
>
>>> $this->row = mysql_fetch_object($this->result);
>
>>> $this->feldname="id";
>>>
>>> Wie aber komme ich nun an "$row->id"?
>> Hmm, ich benutze zwar immer mysql_fetch_assoc, aber laut
>> http://de.php.net/mysql_fetch_object müsste es in deinem Fall über
>> $this->row->id gehen.
>
> ja klar geht das, aber mein Feld heisst nicht jedes Mal "id", sonderm
> vielleicht beim naechsten table "banane" oder ...
>
>> Was hat das $this->feldname damit zu tun?
>
> Hier sage ich, wie das Feld/die Spalte in dem DB-table heisst. Also
> eigentlich moechte ich $this->row->[$this->feldname] ...

Ja, das habe ich dann auch kapiert - der Cancel war nicht schnell genug. ;)

Siehe mein anderer Beitrag.

regards,
Jens

Re: Object von einem Objekt

am 14.09.2006 22:18:29 von Julian Bessenroth

Jens Himmelrath schrieb:

Hi Jens,

erst mal Danke fuer Deine Antwort,

> Geht in jedem Fall über einen Zwischenschritt:
>
> $tmp_field =3D $this->fieldname;
> echo $this->row->$tmp_field;

Darueber habe ich auch schon nachgedacht, aber ich dachte es sollte
auch irgendwie direkt gehen, oder?

> Das geht bei mir auch nicht:
>
> echo $this->row->$this->fieldname;
>
> Wieso eigentlich nicht?

Jo, auf jeden Fall sitze ich mit dieser Frage nun nicht mehr alleine
da;-)

Gruesse

Julian

Re: Object von einem Objekt

am 14.09.2006 22:22:30 von Helmut Chang

Jens Himmelrath schrieb:

> Das geht bei mir auch nicht:
>
> echo $this->row->$this->fieldname;

Schon probiert?

echo $this->row->{$this->fieldname};

gruss, heli

Re: Object von einem Objekt

am 14.09.2006 22:26:21 von Jens Himmelrath

Helmut Chang schrieb:
> Jens Himmelrath schrieb:
>
>> Das geht bei mir auch nicht:
>>
>> echo $this->row->$this->fieldname;
>
> Schon probiert?
>
> echo $this->row->{$this->fieldname};

Jetzt ja. Es funktioniert. (PHP5)

Da das Problem nun gelöst ist: Weiß jemand woran es liegt?

regards,
Jens

Re: Object von einem Objekt

am 14.09.2006 22:28:10 von Julian Bessenroth

Helmut Chang schrieb:

> Schon probiert?
> echo $this->row->{$this->fieldname};

grrrrrrr, .... da habe ich alles moegliche ausprobiert (auch "...",
(...) und [...]), aber warum mache ich dann vor curly brackets schluss?

Danke, das war es auf jeden Fall;-)

Klarer Fall von: "Die wenigsten Leute scheiter! Sie geben nur zu frueh
auf."

regards

Julian