mysql_fetch_array() überschreibt Array-Inhal

mysql_fetch_array() überschreibt Array-Inhal

am 08.04.2005 12:37:40 von Ralf Gmeiner

Hallo NG,

ich habe mittels LEFT JOIN zwei Tabellen miteinander verknüpft, die
teilweise gleiche Spaltennamen, aber mit anderen Inhalten enthalten.

SELECT t1.id,t1.bla,t2.id,t2.fid,t2.blub FROM t1 LEFT JOIN t2 on
t1.id=t2.fid

Wenn ich mit mysql_fetch_array() die Datensätze nun in ein Array schreibe
überschreibt t2.id aber den Wert für t1.id, da im Array der "t1."-Teil nicht
als Name mitgespeichert wird.

Array
(
[0] => Wert1
[id] => Wert3 (statt Wert1!)
[1] => Wert2
[bla] => Wert2
[2] => Wert3
Hier fehlt [id], stattdessen wurde oben Wert1 oben ersetzt.
[3] => Wert4
[fid] => Wert4
[4] => Wert5
[blub] => Wert5
)

Gibt es einen Trick, um das Array wiefolgt rendern zu lassen?

Array
(
[0] => Wert1
[t1.id] => Wert1
[1] => Wert2
[t1.bla] => Wert2

[2] => Wert3
[t2.id] => Wert3
[3] => Wert4
[t2.fid] => Wert4
[4] => Wert5
[t2.blub] => Wert5
)

Oder wie "geht man" normalerweise vor, wenn man Tabellen joined, die gleiche
Spaltennamen haben. Die Spaltennamen möchte ich nicht unbedingt ändern.

Viele Dank für Eure Hilfe

Ralf

Re: mysql_fetch_array() überschreibt Array-Inhalte bei LEFT JOIN

am 08.04.2005 12:47:21 von Fabian Schladitz

Ralf Gmeiner schrieb:
> SELECT t1.id,t1.bla,t2.id,t2.fid,t2.blub FROM t1 LEFT JOIN t2 on=20
> t1.id=3Dt2.fid
> Oder wie "geht man" normalerweise vor, wenn man Tabellen joined, die=20
> gleiche Spaltennamen haben. Die Spaltennamen möchte ich nicht unbedin=
gt=20
> ändern.


Du könntest SELECT t1.id as t1_id, t2.id as t2_id ... schreiben.

--=20
HTH,
Fabian

Re: mysql_fetch_array() überschreibt Array

am 08.04.2005 13:02:13 von Ralf Gmeiner

"Fabian Schladitz" schrieb...

> Du könntest SELECT t1.id as t1_id, t2.id as t2_id ... schreiben.

Die Mühe wollte ich mir eigentlich sparen, da es eine ganze Reihe von
Variablen ist, und ich daher mit SELECT * FROM ... abkürzen wollte.

Geht es nicht anders?

Viele Grüße
Ralf

Re: mysql_fetch_array() überschreibt Array-Inhalte bei LEFT JOIN

am 08.04.2005 14:57:48 von Niels Braczek

Ralf Gmeiner schrieb:
> "Fabian Schladitz" schrieb...
>
>> Du könntest SELECT t1.id as t1_id, t2.id as t2_id ... schreiben.
>
> Die Mühe wollte ich mir eigentlich sparen, da es eine ganze Reihe von
> Variablen ist, und ich daher mit SELECT * FROM ... abkürzen wollte.

Wolltest du lieber nicht.
16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

MfG
Niels

Re: mysql_fetch_array() überschreibt Array

am 13.04.2005 22:17:31 von Ralf Gmeiner

"Niels Braczek" schrieb...

>> Die Mühe wollte ich mir eigentlich sparen, da es eine ganze Reihe von
>> Variablen ist, und ich daher mit SELECT * FROM ... abkürzen wollte.
>
> Wolltest du lieber nicht.
> 16.14. Warum soll ich nicht SELECT * schreiben?
> http://www.php-faq.de/q/q-sql-select.html

Mh, ja, das hatte ich auch schon mal gelesen, aber ich war trotzdem immer zu
faul, zumal ich keine BLOBs benutzt habe. Aber in diesem Fall bin ich nun
nicht drum herum gekommen.

Danke für Euer Feedback

Ralf