Rekurze a strákování – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Rekurze a strákování – PHP – Fórum – Programujte.comRekurze a strákování – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
plasmo0
Věrný člen
30. 7. 2008   #1
-
0
-

Dělám fotogalerii. Každá galerie v ní múže mít nekonečno podgalerií. Obrázky vypisuji pomoci rekurze. Mám následující strom:
Galerie1
- Galerie2
--Galerie3
- Galerie4
--Galerie5
---Galerie6
Takže když budu v Galerie1 tak se vypisi vsechny fotky z galerii: Galerie 1 - Galerie 6.
Pokud přejdu do galerie 2 tak se mi už zobrazí jen fotky z Galerie 2 a 3.
Pokud otevru galerie4 tak se zobrazi fotky jen z Galerie 4 -6.
Když otevřu galerie5 tak se zobrazí jen fotky z Galerie 5 a 6.
A když Galerie 6 tak jen fotky Galerie6.

Tak a ted to potrebuji nastrankovat, použil jsem tuto třídu: http://trupik.aspweb.cz/programovani/php/strankovani-v-php-a-mysql-pohodlne-a-univerzalne.aspx.

Tak a funkce kterou jsem na tohle vše napsal vypadá následovně:



function vypis_foto($galerka){
//získám id dle odkazu seo
$sql = "SELECT id_kat FROM gal_kat WHERE seo = '".$galerka."' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
$zaznam = mysql_fetch_object($res);
$id = $zaznam->id_kat;
//vyberu vsechny podgalerie teto
$sql = "SELECT id_kat,seo FROM gal_kat WHERE tata='".$id."'";
$res = mysql_query($sql) or die(mysql_error());
//rekurze
while($zaznam = mysql_fetch_object($res)){
vypis_foto($zaznam -> seo);
}
//vypis fotek
$foto = new CleverPager("SELECT * FROM gal_fotky LEFT JOIN gal_kat ON gal_fotky.galerie=gal_kat.id_kat WHERE galerie = '".$id."'", "galerie");
$foto->DataBind();
$res = mysql_query($sql) or die(mysql_error());
while($zaz =$foto->GetOne()){
echo "<span class=\"nahled\">";
echo "<a href=\"/image/test/".$zaz->url."\" rel=\"lightbox[roadtrip]\"><img src=\"/image/test/".$zaz->url."\" width=\"100\"/></a>";
echo "</span>";
}
//strankovani
echo $foto->DrawPager();
}


Tak vše by bylo ok, kdyby stránkování nepracovalo následovně:



No a já potřebuji aby se to nastránkovalo jako celek. Může mi někod poradit?

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
Reklama
Reklama
30. 7. 2008   #2
-
0
-

Co je na tom teda spatne?

V <Q> by to bylo tak na 6 radek kodu :) http://q.php5.cz

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
plasmo0
Věrný člen
30. 7. 2008   #3
-
0
-

Je tam někde hotvé řešení, co mám hledat?

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
30. 7. 2008   #4
-
0
-

Jak se na to divam, tak rozhodne nedoporucuju mit hierarchizaci dat jen na principu parent_id, to je velice neefektivni.

Jinak hotove reseni...tezko, dokumentace ani tutorialy jeste nejsou, muzes se podivat na priklad (treba Simple pagination).

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
plasmo0
Věrný člen
30. 7. 2008   #5
-
0
-

To CommanderZ :
Prosím tě, tohle vidím poprvé v životě, je to v anj, a já tu galerii zítra musím mít hotovou. Není pro člověka co vidí <Q> poprvé v životě schůdnější řešení?

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
30. 7. 2008   #6
-
0
-

Tak rekni co je na tom tvem reseni spatne, ja to vubec nepochopil, to bude nejrychlejsi

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
plasmo0
Věrný člen
30. 7. 2008   #7
-
0
-

To CommanderZ :
Nenastrankuje to jako celek, všechny obrazky najednou, ale vypise to jednu galeri se strankovanim, pod to druhou galerii se strankovanim tak jak je to na obrazku. A přitom by tam mělo byt jen jedno stránkování, a jeden výsledek.

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
30. 7. 2008   #8
-
0
-

On je problem v te rekurzi, predtim jsem si to spatne prohledl, tady na to by ti ani Q nepomohla. Problem je v tom, ze jestli mas strom definovany jenom pomoci parent_id, tak se to temer neda cele projit jednim dotazem - a zpracovat vice dotazu na jednu stranku ta trida (ani Q) neumi.

Jedine co me napada je union - zkus tohle - nic ti ale nezarucuju - mohlo by se to tim ale dat obejit

Ta vypis_foto nebude vypisovat ty fotky, jen prida string s sql dotazem do globalniho pole. To potom na zaver implodujes stringem " UNION " - tim se to cele spoji do jednoho dotazu - a ten cely spojeny string provedes pomoci te tve tridy.

Je to ale z hlediska vykonu tragicke reseni.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
plasmo0
Věrný člen
30. 7. 2008   #9
-
0
-

To CommanderZ :
A co je to pravé ořechové, co se výkonu týče?

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
30. 7. 2008   #10
-
0
-

http://www.sitepoint.com/article/hierarchical-data-database

Prvni stranka je to tvoje reseni, na ostatnich jepokrocila L-R struktura

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 44 hostů

Podobná vlákna

Rekurze — založil CML

Rekurze — založil NevimCoSemVyplnit

Rekurze — založil johny

Rekurze SPĚCHÁ — založil Hanmir1

Rekurze vs zasobnik — založil fitness

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý