Eredmény: 1 - 5 (5) összesen

Téma: Dinamikus kategorizálás / PHP SQL /

  1. #1
    Bölcs huncyrus logója
    Csatlakozott
    07-04-26
    Hely
    EU :)
    Hozzászólás
    519
    Begyűjtött 4 köszönetet
    4 hozzászólásával

    Alapbeállítás Dinamikus kategorizálás / PHP SQL /

    Ahoj!

    No elmélkedtem és most elakadtam :P egy triviálisnak tűnő problémán.
    A lényeg, csináljunk egy adatbázis táblát, amelyben van három oszlop: id, nev, parentid. A parentid alapján tudjuk megállapitani, hogy mely kategoria alkategoriája egy másik aktegoriának. Ugyebár ez 1-2 fix mélységig teljesen mind1, hiszen azt statikusan lazán azonosithato. És dinamikusan?

    Nos alapvetően ciklikus kiolvasással gondoltam megoldani, mint kiderült nem is olyan könnyü. Probáltam már tömbkezelő függvényekkel összeboronálni két tömböt hát érdekes kisérlet és több-kevesebb sikerrel ****ás is, de nem az igazi és komplikált. én valami egyszerüt kerestem.

    Most jogosan felmerül minden db-sben h ez a majom mér nem használja a sql beépitett fügvényeivel valo mokázást? hát egyszerü! csekk dísz vozzár!
    simán jo lenne rá a GROUP BY és az ORDER BY kapcsolata.
    Namost mind tudjuk, hogy a group by csak simán egybetolja, csoportba foglalja és leröviditi a táblát, viszont nekünk most ebben az esetben KELL az egész tábláa, csupán normálisan rendezve. Erre való a GROUP BY parentid WITH ROLLUP... legalábbis ez LENNE a legjobb megoldás de marhára nem így van. / a házi sql-m hibát dob rá, a netesem meg ugyanugy dobja rá a szimpla group by eredményét ... na erre van valakinek valami gondolata?


    [OFF] namost a kategoria szerkezetnek ilyesmik is lehetnének:

    Példa 1:
    - kat1
    - kat2
    -- kat3
    ---kat4
    ---- kat5
    ---kat6
    ----- kat7
    ------- kat8
    ------- kat9
    ----------kat10
    ---- kat11
    -- kat12
    - kat13
    -- kat14
    -- kat15
    --- kat16
    - kat17


    példa2:
    - kat1
    -- kat2
    - kat3
    - kat4
    -- kat5
    --- kat6
    - kat7

    -* a vonalak az alketegoriák szintjét jelölné... csakhát a szövegszürés miatt ugyebár ...

    Na ha valakinek van bármi lövése is hozzá akkor plz szoljon, ossza meg velünk a dinamika gyönyöreinek ezen bugyrait esetleg tangiáit


    Utoljára módosítva: huncyrus által : 2007-09-15 21:23
    Cyrusmagus.hu - Informatika, Fantasy, Blog, Irások

  2. #2
    nimda AlBrown logója
    Csatlakozott
    07-06-15
    Hely
    Budapest
    Hozzászólás
    405
    Begyűjtött 9 köszönetet
    6 hozzászólásával

    Alapbeállítás re: Dinamikus kategorizálás / PHP SQL /

    A kulcsszó a rekurzió! Megoldható SQL ből, de nem javaslom web/mysql stb okán.
    Ilyen helyzetekben egy nagyon egyszerű rekurzív PHP függvényt célszerű összedobni.
    Kód:
    <? 
    function kiir_menu($id, $szint) { 
    	$menu_q = mysql_query('select id, nev from tábla where parentid  = '.$id);
    	while ( $menu_lista = mysql_fetch_row($menu_q) ) { 
    		/* kiírjuk a $szint darab csillagot*/  
    		echo $menu_lista[1]; //<< ez a név
    	}  //end while
    	kiir_menu( $menu_lista[0], $szint+1);
     } //funtion
    kiir_menu(0,0); //feltételezzük hogy a legfelső szinteknél a partentid==0
    ?>



    Utoljára módosítva: AlBrown által : 2007-09-15 23:00 Oka: kiegeszites, hulyeséget írtam törlöm a rollupos sqlt-t

  3. #3
    Bölcs huncyrus logója
    Csatlakozott
    07-04-26
    Hely
    EU :)
    Hozzászólás
    519
    Begyűjtött 4 köszönetet
    4 hozzászólásával

    Alapbeállítás re: Dinamikus kategorizálás / PHP SQL /

    Köszönöm a segedelmet

    Eleddig 2 rekurzivval probálkoztam, mint irtam az egyik a tömbkezelés gyönyöreibe vezetett be : P : D de nagyon tanulságos volt (megtanultam normálisan használni az each, key, val, current, next, prev ésatöbbi tömbkezelő függvényt) lényegében tulbonyolitottam (najo mondjuk egy csomo mást is vizsgáltam közben, + egy rakat biztonsági dolgot is belevittem mer mér ne)... najo nem nyujtom hosszura a mondokámat, lényeg, hogy igen, ezt normálisan csak rekurzivan lehetett megoldani (ill meg lehetne sql-ből is de nem javalt.. mert nem és kész : D ).

    No egy hasonlo függvényt irtam meg rá közben : ) és nagyon szépen müxik, plusz a formázást is megoldottam, formázással együtt lezs 16 sor az egész (igen, elnyujtottam a kódot, formáztam h átláthato legyen és az alap fg összesen 13 sor, ha összehuznám 7-ben is elférne... az elötte levő tulbonyolitott probák ennek majd tizszeresére rugtak... hiába, a programozok problémái .

    A lényeg h még 1x thenksz szmájlíí és bugyborgómelegbarnamalátasör



  4. #4
    nimda AlBrown logója
    Csatlakozott
    07-06-15
    Hely
    Budapest
    Hozzászólás
    405
    Begyűjtött 9 köszönetet
    6 hozzászólásával

    Alapbeállítás re: Dinamikus kategorizálás / PHP SQL /

    nm
    egy két gondolat még az iolyesmihez, ha valaki csak úgy olvassa
    1.Figyelni kell, hogy pont annyi SQL megy a szervernek, mint amennyi menüpont van! nagy terheltségú oldalnál a cache-elés nem maradhat el.
    2. id, parentid nek index elengedhetetlen.
    3. legfelljebb menüre érdemes használni, egy MLM rendszert már nem építenék rá
    4. érdemes az ilyeneket megcsinálni inkább tárolt eljárásból, sokkal gyorsabb lesz



  5. #5
    Bölcs huncyrus logója
    Csatlakozott
    07-04-26
    Hely
    EU :)
    Hozzászólás
    519
    Begyűjtött 4 köszönetet
    4 hozzászólásával

    Alapbeállítás re: Dinamikus kategorizálás / PHP SQL /

    ... ehhez még én is hozzátennék egy-egy gondolatot....

    az ilyen eljárás franko, de ne feledjük általában (!) a rövidebb, tömörebb és célratörőbb kód kevesebb energiát igényel és gyorsabb is.
    Ugyanakkor tény, hogy az ilyen kódot max kategoriákra vagy menükre érdemes használni, mert egy MLM rendszerben (Amiket még mindig nem értem h a rendőrség miért nem tiltott be, hiszen piramisjáték gyakorlatilag a legtöbb netes verzsönje... szvsz) már durva lenne egy ilyen... tehát összegezve csak kis mennyiségü, rövid adatmennyiségnél érdemes tolni.

    És mindig zárjuk a kapcsolatot és üritsük a tárolokat (és akár irtsuk ki a változok foglalását is... éveket adhatunk igy a servereknek - ez volt a serverbarátok film ajánlója)



A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •