Autor | Zpráva | ||
---|---|---|---|
fotohemalacz Profil |
Zdravím, jsem v tomto lama tak to bude trivialita - ve funkci která má postupně vytvářet objekty, plnit je daty z databáze a následně vložit do pole objektů, které je také cílem a mění hodnotu pole i mimo fci, mám ve vysledku stále stejný objekt ve všech buňkách pole, i když v průběhu vce při kontrolním výpisu to vypadá ok.
Za upozornění na chybu velké díky, nejsem schopný přijít tomu na kloub. Php soubor je tady http://dip.fotohemala.cz/dbs.php //funkce výpisu fotek z databáze do pole objektů function VytvorPoleFotekDBS ($sql,&$pole) { $vysledek=mysql_query($sql); $radky=mysql_num_rows($vysledek); if ($radky==0) echo "V databázi není informace o žádné fotografii!"; else { $i = 1; $foto = new fotka; while ($zaznam=MySQL_Fetch_Array($vysledek)): $foto->jmeno = $zaznam["jmeno"]; $foto->cesta = $zaznam["cesta"]; $foto->xLatitude = $zaznam["x"]; $foto->yLongitude = $zaznam["x"]; $foto->xRef = $zaznam["xref"]; $foto->yRef = $zaznam["xref"]; $foto->zAltitude = $zaznam["z"]; $foto->pozn = $zaznam["pozn"]; $pole[$i] = $foto; echo "Foto ",$i,": "; print_r ($pole[$i]); //tohle vypíše vpohodě různé údaje echo "<br>\n"; $i++; //$foto->Vypis($foto); echo "<br>\n"; endwhile; //chyba, po uknočení předchozího while jsou všechny objekty v poli "pole" totožené!!! (násl. cyklus vypíše 13x totéž) foreach ($pole as $value) { $foto->Vypis($value); //tady už vypíše x-krát stejné údaje, problém fe fci vypis není... } } } |
||
nethor Profil |
Řekl bych, že problém může být ve dvou věcech:
1) $foto = new fotka; while ($zaznam=MySQL_Fetch_Array($vysledek)): $foto = new fotka; $foto->jmeno = $zaznam["jmeno"]; $foto->cesta = $zaznam["cesta"]; ...atd ... Jinak se stále přepisují hodnoty stejného objektu. (a zustanou poslední) 2) jestli k prom. $pole[$i] přistupuješ i mimo fci, musíš z ní ve fci nejprve udělat globální Global $pole; |
||
fotohemalacz Profil |
#3 · Zasláno: 22. 3. 2010, 11:17:37
Díky moc za pomoc :)
|
||
Časová prodleva: 14 let
|
0