Autor Zpráva
karel
Profil *
mám tabulky:

TEMA(id, nazev)
PRISPEVKY(id, obsah, tema, zanoreni)

a dotaz: SELECT * FROM TEMA JOIN PRISPEVKY ON TEMA.ID = PRISPEVKY.TEMA;

což vrací všechny záznamy v následující skladbě:

id , nazev , id, obsah, tema, zanoreni ... problém je, že jsou tam 2 stejné sloupce,
čemuž bych se mohl vyhnout tím, že bych je přejmenoval, ale mě by zajímalo, jestli
je lze i tak vypsat ... myslel jsem, že to funguje s tečkovou notací (tema.id, nazev.id, prispevky.id, prispevky.obsah,....)

ale když mám v PHP skript:

while($zaznam = MySQL_Fetch_Array($dotaz)){
echo $zaznam['tema.id']." ".$zaznam['tema.nazev']." ".$zaznam['prispevky.id']... atd
}

tak mi to bohužel nefunguje ... kde je chyba?

moc dík za radu,

k.
nightfish
Profil
kde je chyba nevím, nicméně přepsal bych to jako
while ($zaznam = mysql_fetch_row($dotaz)) {
list($idTema, $nazev, $idPrispevky, $obsah, $tema, $zanoreni) = $zaznam;
// a tady výpis
}
nightfish
Profil
jinak když si v tom svém while ($zaznam = mysql_fetch_array($dotaz)) dáš vypsat
print_r($zaznam);
tak uvidíš, jaké indexy jsou v poli $zaznam definovány...
karel
Profil *
... co se člověk všechno nedozví :)
on si uchovává i číselné indexy i asociační (?) indexy:

[0] => 1 [id] => 333
[1] => prvni tema [nazev] => prvni tema
[2] => 333
[3] => 1 [tema] => 1
[4] => toto je obsah prvniho tematu [obsah] => toto je obsah prvniho tematu
[5] => 0 [zanoreni] => 0
[6] => 0 [rodic] => 0
[7] => 1 [poradi] => 1

... akorát u těch jmen atributů, která jsou stejná ("id") to zmotal a k prvnímu
výskytu is u těch asociací přiřadil hodnotu, která má být u druhého výskytu
a u druhého výskytu prvek pole s asociačním klíčem chybí úplně.

Je to divné.
nightfish
Profil
mysql_fetch_row vrací pole s číselnými indexy
mysql_fetch_assoc vrací pole s indexy odpovídajícími názvu sloupce
mysql_fetch_array vrací pole, které obsahuje oba typy indexů
karel
Profil *
díky za radu. ten fígl s funkcí list() je dost kosmickej, použil jsem ho :)
K.
Toto téma je uzamčeno. Odpověď nelze zaslat.