[ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.09.07
Prihlásený: 30.11.11
Príspevky: 143
Témy: 37 | 37
NapísalOffline : 19.05.2010 17:02 | mnohourovnovy vypis kategorii z DB

Zdravím. Som opäť s logikou v koncoch. Posúďte sami.

Z indexu volám do výpisu $page->RenderSortiment();

Rendder sortiment vyzera nasledovne:
Kód:
   function RenderSortiment()
   {
      global $app;
      
      $sqlQuery = "SELECT  S.*, count(S.ID) FROM clSortiment S
         INNER JOIN Product P ON P.clSortiment=S.ID
         WHERE S.DateValidTo IS NULL AND P.DateValidTo IS NULL AND S.nadkat = 0
         GROUP BY S.ID ORDER  BY Value";
      $result = $app->Db->Select($sqlQuery);
      while ($row = mysql_fetch_object($result))
      {
      

         echo "      <li><a href='?p=sortiment&id=$row->ID' title='$row->Value'> " .
            $row->Value . " &raquo;" .
            "</a></li>\n";
      
         if ($row->ID == $this->id)   // generovanie submenu
         {
            $this->RenderSortimentSub($row->ID);
         }
      }
   }


Tu je to myslim zrozumitelne. RenderSortimentSub som prerobil v ramci logiky- Selectnem kategoriu podla jej ID, pozriem sa na jej nadkategoriu, zapisem ju do pola. To iste spravim s dalsou nadkategoriou az po nultu uroven. Takto naplnene pole dam potom na foreach vypis, kde volam RenderSortimentSub pokial v poli nieco je( moj prepracovany mozog si mysli, ze by tym padom malo vypisat vsetky podkategorie zainteresovanych kategorii:)

Kód:
      function RenderSortimentSub($sortimentId)
   {
         global $app;
   
         $sqlQuery = "SELECT * FROM `clSortiment` WHERE ID = $sortimentId";
      $result = $app->Db->Select($sqlQuery);
      $row = mysql_fetch_object($result);
                global $poleNadkat;
     $poleNadkat[] = $row->nadkat;//Pridam ID povodne volanej polozky menu
      $this->SelectNadkat($row->nadkat);
             


   

      
      echo "<ol>&raquo;";
         $sqlQuery = "SELECT * FROM `clSortiment` WHERE nadkat = $sortimentId";
      $result = $app->Db->Select($sqlQuery);
      while ($row = mysql_fetch_object($result))
      {
      echo "   <li><a href='?p=sortiment&id=$row->ID' title='$row->Value'> " .
            $row->Value . " " .
            "</a></li>\n";

      }
      echo "&raquo;</ol>\n";
   
//   foreach ($poleNadkat as &$value) { // Zabespecenie rekurzie funkcie
//    $this->RenderSortimentSub($value);
//}

   }


   function SelectNadkat($nadkategoria)  //Plnim zasobnik volani funkcie tvorby menu
      {
      
         global $app;
            $sqlQuery = "SELECT * FROM `clSortiment` WHERE ID = $nadkategoria";
      $result = $app->Db->Select($sqlQuery);
      $row = mysql_fetch_object($result);
          global $poleNadkat;
            $poleNadkat[] = $row->nadkat;//Pridam cislo nadkategorie do pola
         if ($row->nadkat != 0)   // overenie konca rekurzie funkcie
         {
         
      $this->SelectNadkat($row->nadkat);

         }
      
      }


Dufam ze som tu dal vsetko relevantne. Dajte mi prosim vediet ci na to idem velmi zle alebo len trochu. :) Vdaka


Offline

Užívateľ
Užívateľ
mnohourovnovy vypis kategorii z DB

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 20.05.2010 8:59 | mnohourovnovy vypis kategorii z DB

http://emer.grafika4u.sk/clanky/php-mys ... eho-dotazu

pomoze?


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.09.07
Prihlásený: 30.11.11
Príspevky: 143
Témy: 37 | 37
Napísal autor témyOffline : 20.05.2010 15:17 | mnohourovnovy vypis kategorii z DB

Jasne že pomôže. :) Omnoho elegantnejšie riešenie do akého som sa púšťal. Staćilo dorobiť spomínané pole na načítanie všetkých nadkategórií v selekte a už to funguje ako postupne vyklikávateľné riešenie. :) Vďaka


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2
NapísalOffline : 20.05.2010 15:44 | mnohourovnovy vypis kategorii z DB

nooooooo testoval to uz niekto pri tabulke s objemom niekolko desiatok az stoviek MB ? nacitat cely obsah velkej tabulky pre ziskanie stromu z ktoreho realne mozno potrebujeme len jednu vetvu je dost riskantne :)


Offline

Užívateľ
Užívateľ
mnohourovnovy vypis kategorii z DB

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 21.05.2010 8:34 | mnohourovnovy vypis kategorii z DB

tak neviem ci niekto bude vypisovať strom s niekoľko stotisícov záznamov.
ale možno narážaš na to, že existuje aj takéto riešenie:

http://articles.sitepoint.com/article/h ... a-database

lenže pokiaľ je v DB iba pár desiatok (alebo stoviek) záznamov, nevidím dôvod, prečo by som nemal používať tamto riešenie


_________________
Sorry za prelkepy
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2
NapísalOffline : 21.05.2010 8:40 | mnohourovnovy vypis kategorii z DB

no ved ja som pisal ze v pripade VELKEJ tabulky :) moj prispevok bol len upozornenie ze tvoj sposob nemusi byt univerzalne najlepsi a treba si uvedomit co to moze sposobit v pripade velkej tabulky. videl som tabulky ktore boli takto organizovane a boli velke lebo vnich bola cela organizacna struktura pomerne velkej firmy :) samozrejme v pripade malej tabulky bude tvoje riesenie vykonnejsie :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.09.07
Prihlásený: 30.11.11
Príspevky: 143
Témy: 37 | 37
Napísal autor témyOffline : 22.05.2010 1:37 | mnohourovnovy vypis kategorii z DB

Neviem ci si si vsimol moju poznamocku o poupraveni selektu. Tym padom vyberam vzdy len to, co realne na zobrazeni potrebujem. Nic viac.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.09.07
Prihlásený: 30.11.11
Príspevky: 143
Témy: 37 | 37
Napísal autor témyOffline : 22.05.2010 1:41 | mnohourovnovy vypis kategorii z DB

Mimochodom, este stale s temou suvisiaca otazka...
Viete mi niekto povedat preco mi nacita to pole v poradi od najmensej ID?? Podla mna na to nema ziaden dovod. V manuali pisu, ze implode to dava do selektu v takom poradi, a akom su v poli ulozene polozky. Tak nechapem.

Kód:
     $Select = mysql_query("SELECT * FROM clSortiment WHERE ID IN ('" . implode("', '", $poleNadkat) . "') AND DateValidTo IS NULL AND ID != 0 "); //Selektnem len to co sa po danom stlaceni vypisat ma. Vsetky chcene kategorie v aktualnom strome
     while($Row = mysql_fetch_assoc($Select)){
     
         $Arr[$Row['ID']] = $Value['ID'];


     }


Offline

Správca fóra
Správca fóra
mnohourovnovy vypis kategorii z DB

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 22.05.2010 7:02 | mnohourovnovy vypis kategorii z DB

implode ano, ale IN pracuje inak ako by si mozno ocakaval ;)


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.09.07
Prihlásený: 30.11.11
Príspevky: 143
Témy: 37 | 37
Napísal autor témyOffline : 22.05.2010 12:18 | mnohourovnovy vypis kategorii z DB

To ma tiez napadlo, ale podla vsetkeho, ani ten by sa nemal spravat inak- http://www.sql-tutorial.net/SQL-IN.asp


Offline

Správca fóra
Správca fóra
mnohourovnovy vypis kategorii z DB

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 22.05.2010 12:26 | mnohourovnovy vypis kategorii z DB

vysledok sa ti vrati v poradi, ako su jednotlive zaznamy ulozene v tabulke, a nie podla poradia uvedeneho v IN... ak chces zachovat nejake poradie, tak to poradie mozes pouzit napr. v ORDER BY


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.09.07
Prihlásený: 30.11.11
Príspevky: 143
Témy: 37 | 37
Napísal autor témyOffline : 22.05.2010 12:35 | mnohourovnovy vypis kategorii z DB

Hmm, a to uz tazko prerobim... Na aktualnu podstranku vypisujem jednotlive urovne stylom- Hlavna stanka» Podkategoria».....» Aktualna stranka

A ked mi to poprehadzuje, je cely vypis na hlavu. Dalo by sa to pole "preusporiadat" podla toho pola poleNadkat co vkladam do query? Este takuto vidim moznost, len neviem ci to je mozne...

Order ma napadol ako prvy, ale vtlacit tam logiku- vypis podla poradia v akej su naveznosti (ktora je cia nadkategoria) sa mi zda nepreveditelne.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.09.07
Prihlásený: 30.11.11
Príspevky: 143
Témy: 37 | 37
Napísal autor témyOffline : 22.05.2010 15:37 | mnohourovnovy vypis kategorii z DB

Opät par hodin patrania, spekulovania a skrabania si lavou nohou prave ucho, ale nakoniec som sa "vratil ku korenom" a vcelku elegantne sa to cez ten ORDER samozrejme dalo... Tu je vysledny selekt, nech to podobneho nestastnika ako ja pre buducnost inspiruje:

Kód:
     $Select = mysql_query("SELECT * FROM clSortiment WHERE ID IN ('" . implode("', '", $poleNadkat) . "') AND DateValidTo IS NULL ORDER BY ID = '" . implode("'DESC, ID = '", $poleNadkat) . "'");


Ten vyberie za pomoci zadavaneho ID vsetky relevantne kategorie aj nadkategorie pomocou vypisu pola poleNadkat a usporiada query v poradi tohto pola(Nech sa nestane tak ako mne, ze to odbura logicku postupnost kategorii.)
Tak opat dik Sten za usmernenie.

Majte pekny den.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2
NapísalOffline : 23.05.2010 20:02 | mnohourovnovy vypis kategorii z DB

no problem bude vtom ze associativne polia vacsinou vykonavaku zoradovanie podla svojho indexu cize ak do pola vlozis polozku s indexom 'b' a nasladne 'a' tak pri vybere ti aj tak ako prvu polozku vrati 'a' az potom 'b'


Offline

Správca fóra
Správca fóra
mnohourovnovy vypis kategorii z DB

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 23.05.2010 21:08 | mnohourovnovy vypis kategorii z DB

to je blbost :)


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ Príspevkov: 15 ] 


mnohourovnovy vypis kategorii z DB



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Viacero kategorii v DB

v Databázy

13

589

25.07.2008 17:27

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

Zencart ..nekorektné zobrazovanie názvov kategórii

v Redakčné systémy

1

600

15.10.2009 22:21

dKWt

V tomto fóre nie sú ďalšie neprečítané témy.

woocommerce rozličné rozloženie kategórii produkov

v PHP, ASP

1

123

22.02.2017 22:06

trenavar

V tomto fóre nie sú ďalšie neprečítané témy.

FB sprava priatelov a ich rozdelovanie do kategorii

v Sociálne siete

4

90

18.05.2013 12:16

jtbs

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis

v PHP, ASP

13

661

26.06.2008 10:53

GoodWill

V tomto fóre nie sú ďalšie neprečítané témy.

percentualny vypis

v PHP, ASP

4

282

23.05.2010 21:53

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL vypis

v Databázy

1

101

07.01.2014 15:34

kudzo3

V tomto fóre nie sú ďalšie neprečítané témy.

Výpis php

v PHP, ASP

11

347

14.04.2011 15:58

w3r0

V tomto fóre nie sú ďalšie neprečítané témy.

Stromový výpis

v Sieťové a internetové programy

0

227

19.02.2008 15:29

dsljohn

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis dni

v PHP, ASP

6

499

19.11.2010 13:30

emer

V tomto fóre nie sú ďalšie neprečítané témy.

vypis mailov

v Ostatné

3

260

27.08.2010 15:51

1987123

V tomto fóre nie sú ďalšie neprečítané témy.

Výpis zložky

v PHP, ASP

6

264

30.05.2012 20:04

xxx9955

V tomto fóre nie sú ďalšie neprečítané témy.

rozdvojený výpis?

v PHP, ASP

4

127

21.06.2014 9:16

MasterMatoSK

V tomto fóre nie sú ďalšie neprečítané témy.

výpis adresárov

v PHP, ASP

11

390

14.05.2008 21:52

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

výpis zariadení

v Operačné systémy Microsoft

14

179

17.02.2016 21:06

bobino38

V tomto fóre nie sú ďalšie neprečítané témy.

zoradeny vypis

v PHP, ASP

1

153

02.05.2012 7:09

BX



© 2005 - 2017 PCforum, edited by JanoF