| 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: 16 let
|
|||
0