Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> klasa - atrybuty dla produktó w sklepie on-line
acztery
post 21.04.2006, 23:19:53
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


Witam,

Pewnie każdy kto robił sklep www borykał się z tym jak nadać różne atrybury różnym produktom i je wyśwetlać na stronie z opisem produktu w celach informacyjnych

napisałem coś takiego. może troszkę to " zacofany " ale działa bardzo dobrze, szybko i wydajnie . 1 cecha może być przypisana jednej kategori albo wszystkim dziecia danej kategori.


to działa tylko na 11 dzieciach ale tyle kategori dla róznych cech chyba nie ma żaden sklep www.

co o niej myślicie?


Kod
class type {
function atribute($product_id) {

// wartosc typu

    $SQL="SELECT patch FROM prg WHERE id='$product_id'";
    $RES=sql($SQL); list($patch)=mysql_fetch_row($RES);
    //echo "<b>$patch</b><br><BR>";

    $patchHow= explode(".", $patch);
    //print '<PRE>';
    //print_r($patchHow);
    $ileparetn = count($patchHow)-1;


    if ($ileparetn !='0') {


 // sprawdzamy czy kategoria produktu ma cechy
 $w = $patchHow[$ileparetn];
 $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
 $RES=sql($SQL);
 $licz=mysql_num_rows($RES);

 // sprawdzamy  jakie cechy maja rodzice
 if ($licz!='0') {
     $w = $patchHow[$ileparetn];
     $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
     $RES=sql($SQL);
     list($cechy)=mysql_fetch_row($RES);
     //echo $cechy;
     
 }else{

     $w = $patchHow[$ileparetn-1];
     $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
     $RES=sql($SQL);
     $licz=mysql_num_rows($RES);
     //echo "ostatni parametry zły";
     if ($licz!='0') {

   $RES=sql($SQL);
   list($cechy)=mysql_fetch_row($RES);
   //echo $cechy;
   
     }else{


   //echo "przed ostatni zły";
   $w = $patchHow[$ileparetn-2];
   $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
   $RES=sql($SQL);
   $this->licz=mysql_num_rows($RES);
   if ($this->licz!='0') {

       $RES=sql($SQL);
       list($cechy)=mysql_fetch_row($RES);
       //echo $cechy;
       
   }else{
       //echo "3 od konca zły";

       $w = $patchHow[$ileparetn-3];
       $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
       $RES=sql($SQL);
       $this->licz=mysql_num_rows($RES);
       if ($this->licz!='0') {

     $RES=sql($SQL);
     list($cechy)=mysql_fetch_row($RES);
     //echo $cechy;
     
       }else{
     //echo "4 od konca zły";
     $w = $patchHow[$ileparetn-4];
     $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
     $RES=sql($SQL);
     $this->licz=mysql_num_rows($RES);
     if ($this->licz!='0') {

         $RES=sql($SQL);
         list($cechy)=mysql_fetch_row($RES);
         //echo $cechy;
         
     }else{
         //echo "5 od konca zły";
         $w = $patchHow[$ileparetn-5];
         $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
         $RES=sql($SQL);
         $this->licz=mysql_num_rows($RES);
         if ($this->licz!='0') {

       $RES=sql($SQL);
       list($cechy)=mysql_fetch_row($RES);
       //echo $cechy;
       
         }else{
       //echo "6 od konca zły";
       $w = $patchHow[$ileparetn-6];
       $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
       $RES=sql($SQL);
       $this->licz=mysql_num_rows($RES);
       if ($this->licz!='0') {

           $RES=sql($SQL);
           list($cechy)=mysql_fetch_row($RES);
           //echo $cechy;
           
       }else{
           //echo "7 od konca zły";
           $w = $patchHow[$ileparetn-7];
           $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
           $RES=sql($SQL);
           $this->licz=mysql_num_rows($RES);
           if ($this->licz!='0') {

         $RES=sql($SQL);
         list($cechy)=mysql_fetch_row($RES);
         //echo $cechy;
         
           }else{
         //echo "8 od konca zły";
         $w = $patchHow[$ileparetn-8];
         $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
         $RES=sql($SQL);
         $this->licz=mysql_num_rows($RES);
         if ($this->licz!='0') {

             $RES=sql($SQL);
             list($cechy)=mysql_fetch_row($RES);
             //echo $cechy;
             
         }else{
             //echo "9 od konca zły";
             $w = $patchHow[$ileparetn-9];
             $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
             $RES=sql($SQL);
             $this->licz=mysql_num_rows($RES);
             if ($this->licz!='0') {

           $RES=sql($SQL);
           list($cechy)=mysql_fetch_row($RES);
           //echo $cechy;
           
             }else{
           //echo "10 od konca zły";
           $w = $patchHow[$ileparetn-9];
           $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
           $RES=sql($SQL);
           $this->licz=mysql_num_rows($RES);
           if ($this->licz!='0') {

               $RES=sql($SQL);
               list($cechy)=mysql_fetch_row($RES);
               //echo $cechy;
               
               
           }else{
               //echo "10 od konca zły";
               $w = $patchHow[$ileparetn-10];
               $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
               $RES=sql($SQL);
               $this->licz=mysql_num_rows($RES);
               if ($this->licz!='0') {

             $RES=sql($SQL);
             list($cechy)=mysql_fetch_row($RES);
             //echo $cechy;
             
               }else{
             //echo "10 od konca zły";
             $w = $patchHow[$ileparetn-11];
             $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
             $RES=sql($SQL);
             $this->licz=mysql_num_rows($RES);
             if ($this->licz!='0') {

                 $RES=sql($SQL);
                 list($cechy)=mysql_fetch_row($RES);
                 //echo $cechy;
                 
             }else{
                 //echo "10 od konca zły";
                 $w = $patchHow[$ileparetn-12];
                 $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
                 $RES=sql($SQL);
                 $this->licz=mysql_num_rows($RES);
                 if ($this->licz!='0') {

               $RES=sql($SQL);
               list($cechy)=mysql_fetch_row($RES);
               //echo $cechy;
               
                 }else{
               //echo "10 od konca zły";
               $w = $patchHow[$ileparetn-13];
               $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
               $RES=sql($SQL);
               $licz=mysql_num_rows($RES);
               if ($this->licz!='0') {

                   $RES=sql($SQL);
                   list($cechy)=mysql_fetch_row($RES);
                   //echo $cechy;
                   
               }else{
                   //echo "10 od konca zły";
                   false;
               }
                 }
             }
               }
           }
             }
         }
           }
       }
         }
     }



       }

   }

     }


 }


 if ($w !=''){
     $cechy = $cechy;
 }else{
 
     $cechy = FALSE;

 }
 
    }else{

 $cechy = FALSE;
    }



    return $cechy;
}



function descatrybute($product_id) {

// wartosc cech dla danego produktu

    $SQL="SELECT cechy FROM cechy WHERE id_prg='$product_id'";
    $RES=sql($SQL); list($cechyDesc)=mysql_fetch_row($RES);

return $cechyDesc;

}


function SeeAtrybuteType($product_id) {


    $a = explode(";", $this->atribute($product_id));
    $b =  explode(";", $this->descatrybute($product_id));
    $c = array_combine($a, $b);

return $c;

}


}


BBcode nie działa ...

Ten post edytował acztery 21.04.2006, 23:21:23
Go to the top of the page
+Quote Post
TomASS
post 21.04.2006, 23:52:17
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Cytat
działa bardzo dobrze, szybko i wydajnie

A jak testowałeś?

Zastanowiłeś się czy w tym przypadku na prawdę warto robić klasę?
Aby działało na 12 'dzieciach' to trzeba dostawić kolejnego:

  1. <?php
  2. else{
  3.  //echo "6 od konca zły";
  4.  $w = $patchHow[$ileparetn-6];
  5.  $SQL="SELECT cechy FROM grupy WHERE id LIKE '%$w%'";
  6.  $RES=sql($SQL);
  7. ?>

? Coś chyba jest nie tak?

Cytat
BBcode nie działa ...

Działa tongue.gif

Pracuj, pracuj, pracuj a będziesz coraz lepszy smile.gif


--------------------
Go to the top of the page
+Quote Post
acztery
post 22.04.2006, 00:05:00
Post #3





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


testowałem na swoim sklepie i działa. a klasa dlatego ze nigdy jeszcze ich nie pisalem. 11 dzieci starczy. we for'rze nie działa.

ps policz na allegro kategorie tak aby kazda miala inne cechy zobaczysz ile ich bedzie jak bedzie wiecej niz 8 to postawie Ci piwo

PS wolał bym zeby nie było trzeba nic dopisywać no ale jak znajde czas to to poprawię

bbcode nie działa jak wklejam taka ilosc kodu to sie sypie ..


funkcja SeeAtrybuteType miała mały błąd jak produkt nie miał zdefinowanych cech to array_combine" title="Zobacz w manualu php" target="_manual wywałał błąd.

tak powinno być

  1. <?php
  2. function SeeAtrybuteType($product_id) {
  3.  
  4.  
  5. $a = explode(";", $this->atribute($product_id));
  6. $b = explode(";", $this->descatrybute($product_id));
  7.  
  8. $SQL="SELECT id_prg FROM cechy WHERE id_prg = '$product_id'";
  9. $RES=sql($SQL);
  10. $licz_o=mysql_num_rows($RES);
  11.  
  12. if ($licz_o !='0') {
  13. $c = array_combine($a, $b);
  14. }
  15. return $c;
  16.  
  17. }
  18. ?>


Ten post edytował acztery 22.04.2006, 00:13:21
Go to the top of the page
+Quote Post
TomASS
post 22.04.2006, 00:16:41
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Cytat
testowałem na swoim sklepie i działa.

Co wcale nie znaczy, że:
Cytat
działa bardzo dobrze, szybko i wydajnie
tongue.gif


Cytat
a klasa dlatego ze nigdy jeszcze ich nie pisalem.

OK - fajnie, że się uczysz smile.gif

Cytat
11 dzieci starczy.

To mało uniwersalne

Cytat
we for'rze nie działa.

Szkoda :/

Cytat
ps policz na allegro kategorie tak aby kazda miala inne cechy zobaczysz ile ich bedzie jak bedzie wiecej niz 8 to postawie Ci piwo

guitar.gif Ale allegro ma dodawanie 'podkategorii' w zasadzie w nieskończoność


Dziłaj smile.gif


--------------------
Go to the top of the page
+Quote Post
acztery
post 22.04.2006, 00:21:56
Post #5





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


ja tez mam dodawanie kategori w nieskonczonosc ... to nie sa kategorie tylko cechy dla produktów np kolor/rozmiar itp itd przeanalizuj kod ..
Go to the top of the page
+Quote Post
sf
post 22.04.2006, 07:25:01
Post #6





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


To co napisales to jest czysta amatorka, poprostu beznadziejnie napisane. Jak mozna pisac skrypt, ktory bedzie mial 11 zagniezdzonych ifow i wszystkie beda robic praktycznie to samo ( kup ksiazke, w ktorej opisane jest co to jest rekurencja, co nie zmienia i tak faktu, ze sa zle zalozenia co do tych cech, mozna to lepiej zaprojektowac ). LIKE jest WOLNE, czemu piszez, ze to jest szybkie? Chyba sam nie wiesz co ty w ogole robisz.

Ocena: 0/10

Ten post edytował sf 22.04.2006, 07:26:27


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
TomASS
post 22.04.2006, 07:50:05
Post #7





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Cytat
To co napisales to jest czysta amatorka

Przecierz kolega acztery napisał, że to jego pierwsza klasa - dopiero się uczy.
Cytat
poprostu beznadziejnie napisane.

Zamiast 'deptać' kolegę napisz mu jak to powinno wyglądać profesjonalne napisanie tej klasy. Albo chociaż daj jakieś wskazówki.
Cytat
Jak mozna pisac skrypt, ktory bedzie mial 11 zagniezdzonych ifow i wszystkie beda robic praktycznie to samo

Co fakt to fakt - jak można?
Cytat
up ksiazke, w ktorej opisane jest co to jest rekurencja

Wiki::Rekurencja
Cytat
LIKE jest WOLNE, czemu piszez, ze to jest szybkie?

Też próbuje uzyskać odpowiedź na to pytanie smile.gif
Cytat
Chyba sam nie wiesz co ty w ogole robisz.

Wydaje mi się, że wie smile.gif Tylko nie umie tego jasno przedstawić smile.gif
Cytat
Ocena: 0/10

Może aby nikogo nie urazić, pozostawmy to bez oceny ? smile.gif

Kolega acztery musi się jeszcze troszkę o klasach nauczyć - powodzenia i wytrwaniu w nauce smile.gif


--------------------
Go to the top of the page
+Quote Post
acztery
post 22.04.2006, 08:44:40
Post #8





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


sf a moze ty pokażesz jak Ty byś to zrobił bo wiele osób ma z tym kłopot przy budowie sklepów www

LIKE jest wolne hehe kto Ci powiedział ? ale tak na marginesie zamieniłem na .. = ...

Rekurencja wiem co to jest


i każde zapytanie robi coś innego .. szuka innego id w bazie

pozatym wypowiadasz sie tak jak byś był nie weim kim jakiś ekspert od php a obaj wiemy ze daleko Ci do niego..... pilnij swojej strony internetowej bo jakas uboga .. to jest dopiero amatorszczyzna ..

Ten post edytował acztery 22.04.2006, 08:50:07
Go to the top of the page
+Quote Post
sf
post 22.04.2006, 09:39:48
Post #9





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


@TomASS: to chyba wybral zly dzial, ocenie powinnismy poddawac skrypty gotowe, ktore moga sie przydac innym winksmiley.jpg dlatego tez oceniam moja opinie o przydatnosci skryptu, a to, ze ktos jest poczatukjacy nie powoduje, ze mieknie mi serce tongue.gif

@acztery: a kto Ci powiedział, że szybkie? tak w ogóle to pole powinno być typu int


Ja bym zrobil inaczej, utworzylbym cos takiego jak typProduktu.. nie wiem czemu uzalezniac atrybuty produktu od kategorii w jakiej sie znajduje, co jesli utworze sobie kategorie promocje.


Totez mamy: produkty, kategorie, produktPosiadaKategorie, produkt posiada powiazanie z tabela typProduktu - podpinamy pod to inne tabele, ktore wiarza nam atrybuty


Pozatym nie uzywaj mysql, chyba, ze 5 bo taka baza to jest praktycznie porazka i nie mozna na niej stworzyc dobrej aplikacji. Uzywaj widokow, pl/sql, wiezow integralnosci, transakcji.


Totez zanim zabierzesz sie za sklep z prawdziwego zdarzenia, poznanie tych technik zajmie Ci pewnie z pol roku jak nie rok..


A to co ty chcesz napisac to jest juz gotowe.. OSCommerce sie nazywa.. wiec po co to dublowac, lepiej napisac cos lepszego.

To jest moja osobista ocena sleepysmiley03.gif


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
acztery
post 22.04.2006, 09:45:45
Post #10





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


pisze cos lepszego nie bawem sie przekonasz ...


według ciebie jest tak ze kazdy prodkt mial by przypisane jakies tam pola np isbn,format,okładka itp itd przy 1000 produktach trzeba zajmnie to 1000 wpisow w bazie questionmark.gif?


a moje rozwiazanie : wszystko co w kategori ksiazki ma takie pola ,1 rekord w bazie danych? w sklepie zostało mi tylko to do zrobienia .. pisałmem do pod mysql wiec przepisanie wszystkiego na postgres zajmnie kupe czasu.

dodam tylko ze to wynik działania

Kod
Array
(
    [ISBN] => 8371323336
    [Okłka] => Twarda
    [Iośtron] => 323 stron
    [Format] => 14x34
    [Data wydania] => 2006
    [Wydawca] => Helion
    [] =>
)


Ten post edytował acztery 22.04.2006, 09:58:43
Go to the top of the page
+Quote Post
TomASS
post 22.04.2006, 11:44:35
Post #11





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


To ja się włączę do trójstronnej dyskusji smile.gif
@acztery :
Nie obrażaj sie tylko posłuchaj:
Cytat
sf a moze ty pokażesz jak Ty byś to zrobił bo wiele osób ma z tym kłopot przy budowie sklepów www


Cytat
A to co ty chcesz napisac to jest juz gotowe.. OSCommerce sie nazywa.. wiec po co to dublowac


Cytat
pisze cos lepszego nie bawem sie przekonasz ...

Szczerze mówiąć jak całe 'to' będzie wyglądało tak jak klasa którą zaprezentowałeś, to nie wróżę Ci nic dobrego.... a rację ma sf któy pisze:
Cytat
Totez zanim zabierzesz sie za sklep z prawdziwego zdarzenia, poznanie tych technik zajmie Ci pewnie z pol roku jak nie rok..


Cytat
pisałmem do pod mysql wiec przepisanie wszystkiego na postgres zajmnie kupe czasu

Jakbyś pisał to zgodnie z zasadami OOP to by nie było z tym większego problemu.

Cytat
dodam tylko ze to wynik działania

I dalej staram się uzyskać odpowiedź na jakiej podstawie uznajesz, że:
Cytat
działa bardzo dobrze, szybko i wydajnie


Jak coś zrobisz, to pokaż a postaramy się konstruktywnie ocenić smile.gif


Acha:
Cytat
byś był nie weim kim jakiś ekspert od php a obaj wiemy ze daleko Ci do niego

ja np. nie wiem i uważam troszkę inaczej.

Ten post edytował TomASS 22.04.2006, 11:46:29


--------------------
Go to the top of the page
+Quote Post
sf
post 22.04.2006, 13:38:55
Post #12





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cytat(acztery @ 2006-04-22 08:44:40)
pozatym wypowiadasz sie tak jak byś był nie weim kim jakiś ekspert od php a obaj wiemy ze daleko Ci do niego..... pilnij swojej strony internetowej bo jakas uboga .. to jest dopiero amatorszczyzna ..

Gwoli ścisłości jestem bożkiem php laugh.gif

A ze swojego portfolio mogę wymienić m.in. pracę nad wirtualnemedia.pl, vtrip.pl czy też bron.pl.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
Vogel
post 22.04.2006, 13:52:29
Post #13





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

Ostrzeżenie: (0%)
-----


Cytat(sf @ 2006-04-22 10:39:48)
A to co ty chcesz napisac to jest juz gotowe.. OSCommerce sie nazywa..

nie polecam. rozwiazania sprzed... wieeelu lat (i ta przestarzala skladnia, global register on). a dostosowanie wygladu strony do swoich potrzeb - po prostu masakra. OSCommerce - bleee. Zen-Cart - nie wiele lepiej :/


--------------------
Go to the top of the page
+Quote Post
acztery
post 22.04.2006, 14:43:21
Post #14





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


sf a jak pobierasz atrybuty dla danych produktow na bron.pl pochwal sie
Go to the top of the page
+Quote Post
sf
post 22.04.2006, 14:56:37
Post #15





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


bron.pl stoi na ez, nie ma tam czegos takiego jak atrybuty.. jest stworzony obiekt produkt, ktory zawiera pewne elementy.. ale nie ma np parametrów w stylu kaliber, długość lufy etc ..

atrybuty beda w sklepie, ktory robie juz w innej firmie i jest to zrobione tak jak opisalem


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
stoprocent
post 22.04.2006, 15:06:57
Post #16





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 17.05.2003
Skąd: Kraków , Londyn

Ostrzeżenie: (0%)
-----


Cytat
A ze swojego portfolio mogę wymienić m.in. pracę nad wirtualnemedia.pl, vtrip.pl czy też bron.pl.


No to gratuluje , ale zastanawia mnie po co starasz sie byc taki fajny i komu probujesz zaimponowac questionmark.gif Smieszne heh...

@acztey: A co jesli to bedzie np aparat cyfrowy questionmark.gif 11 to stanowczo za malo, wogole ograniczanie sie jakiekolwiek nie jest dobre.


--------------------
Go to the top of the page
+Quote Post
acztery
post 22.04.2006, 15:19:54
Post #17





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


nasto

11 ..

np/ aparaty cyfrowe / z karatami pamieci / 512 mb / z pokrowcami


tak byle jak

kazdy produkt moze miec i miljon atrybutó

ALE poprawiłem kod dla SF i dla siebie użyłem rekurencji

dowolno ilosc kategori, i typów z czasem dodam szukanie w cechach

  1. <?php
  2. class type {
  3. function atribute($product_id) {
  4.  
  5.  
  6.     // pobieram przedział kategori dla produktu
  7.     $SQL="SELECT patch FROM prg WHERE id='$product_id'";
  8.     $RES=sql($SQL); list($patch)=mysql_fetch_row($RES);
  9.     
  10.  
  11.     $patchHow= explode(".", $patch);
  12.     //    print '<PRE>';
  13.     //    print_r($patchHow);
  14.     $ileparetn = count($patchHow)-1;
  15.  
  16.     // sprawdzamy czy patch zawiera jakies dane
  17.     if ($ileparetn !='0') { // 
  18.     
  19.     for ($i = 0; $i<=$ileparetn; $i++) {
  20.  
  21.  
  22.         // sprawdzamy czy kategoria produktu ma cechy
  23.         $w = $patchHow[$ileparetn-$i];
  24.         $SQL="SELECT cechy FROM grupy WHERE id ='$w'";
  25.         $RES=sql($SQL);
  26.         $licz=mysql_num_rows($RES);
  27.  
  28.         // wyswetlamy wartosc dla pierwszej napotkanej kategrii
  29.         if ($licz!='0') {
  30.             list($cechy)=mysql_fetch_row($RES);
  31.         }
  32.     }
  33.         
  34.     }else{
  35.  
  36.         $cechy = FALSE;
  37.     }
  38.  
  39.     return $cechy;
  40. }
  41.  
  42.  
  43.  
  44. function descatrybute($product_id) {
  45.  
  46. // wartosc cech dla danego produktu
  47.  
  48.     $SQL="SELECT cechy FROM cechy WHERE id_prg='$product_id'";
  49.     $RES=sql($SQL); list($cechyDesc)=mysql_fetch_row($RES);
  50.  
  51. return $cechyDesc;
  52.  
  53. }
  54.  
  55.  
  56. function SeeAtrybuteType($product_id) {
  57.  
  58.  
  59.  
  60.     $a = explode(";", $this->atribute($product_id));
  61.     $b =  explode(";", $this->descatrybute($product_id));
  62.  
  63.     // sprawdzamy czy produkt ma przypisane jakieś cecny
  64.     $SQL="SELECT id_prg FROM cechy WHERE id_prg = '$product_id'";
  65.     $RES=sql($SQL);
  66.     $licz_o=mysql_num_rows($RES);
  67.         
  68.     if ($licz_o !='0') { 
  69.     
  70.     // jezeli ma cecny łaczymy tablice w jedną
  71.     $c = array_combine($a, $b);
  72.     
  73.     }else{
  74.     
  75.     // nie ma cech
  76.     $cechy = FALSE;
  77.     
  78.     }
  79.     //print_r($c);
  80.  
  81.     return $c;
  82.         }
  83.  
  84. }
  85. ?>


Ten post edytował acztery 22.04.2006, 15:21:39
Go to the top of the page
+Quote Post
stoprocent
post 22.04.2006, 17:04:19
Post #18





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 17.05.2003
Skąd: Kraków , Londyn

Ostrzeżenie: (0%)
-----


Zaczne moze tak ze , nie widze sensu ani za bardzo sposobu do stosowania rekurencji.
Rekurencje mozesz wykosrzystac np do budowania kategori, ale cechy to tylko konkretne rekordy przypisane 1 produktowi. Rekurencje wykorzystujesz jak juz wspomnialem np do grup produktow gdzie wyswietlasz sobie 1 funkcja drzewo owych grup.
Po drugie... nie uzyles rekurencji. winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
acztery
post 22.04.2006, 19:02:28
Post #19





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


no spoko nie ma rekrutacji to nie ... ale teraz wygląda lepiej ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.05.2024 - 08:43