Autor | Zpráva | ||
---|---|---|---|
pavlican Profil |
#1 · Zasláno: 11. 11. 2010, 23:47:07
Ahojda, mám tu problém, se kterým si nevim moc rady. Dneska jsem se to snazil vyresit asi 3 hodiny a nikde jsem nenasel uspokojující vysvětletní.
Mám dotaz na databázi: $dotaz = MySQL_Query(... přečet jsem si, že $dotaz je vlastně jen odkaz na výsledek z dotazu na databázi dal pokracuju vypisem: while (list($pom1,$pom2) = mysql_fetch_row($dotaz)){ echo($pom1); } Tohle všechno funguje bezvadně. Problém nastává ve chvíli, když bych chtěl dotaz znova vypsat stejným kódem. Už se nic nevypíše, přesto, že mysql_num_rows($dotaz) Zkoušel jsem i před listováním udělat $pomdotaz=$dotaz; Bohužel se vlastně zkopíruje jen ten odkaz ne výsledek dotazu -> $pomdota, ani $dotaz už nejdou vypsat. Mám velkou databázi, tak se snažim šetřit dotazama - nechci zbytečně vytvářet novej dotaz. Nešlo by to nějakým chytrým způsobem vyřešit? Na netu jsem o tomhle problému nenašel ani zmínku(možná jsem hledal špatný klíčový slova). Zkoušel jsem to i naládovat do dvourozměrnýho pole, ale ani tady jsem nebyl úspěšnej. Vzhledem k tomu, že se znova vytváří zbytečně nová stejně velká proměnná, nemyslim, že by to bylo dobrý řešení. Určitě s tím už budete mít zkušenosti Dík za každou radu P |
||
Anonym Profil * |
#2 · Zasláno: 12. 11. 2010, 00:29:41
Tady tímto kódem jsi vypsal všechny řádky odpovídající dotazu:
while (list($pom1,$pom2) = mysql_fetch_row($dotaz)){ echo($pom1); } ...a už samozřejmě žádný nezbyl - nemůže se už nic znava vypisovat! Pro opakované vypisování doporučuji uložit výsledek do nějaké proměnné (třeba do pole vysledekDotazu[]) a pak se k němu dá vracet. |
||
Anonym Profil * |
#3 · Zasláno: 12. 11. 2010, 00:30:55
while (list($pom1,$pom2) = mysql_fetch_row($dotaz)){ vysledekDotazu[]=$pom1; } |
||
blaaablaaa Profil |
#4 · Zasláno: 12. 11. 2010, 09:08:25
K tomuhle slouzi mysql_ field_ seek, ne?
|
||
pavlican Profil |
#5 · Zasláno: 12. 11. 2010, 14:11:12
Díky za radu, nešlo by ukázat i použití toho mysql_ field_ seek?
Z PHP manuálu mi to není jasné. Díky |
||
Časová prodleva: 13 let
|
0