klasa - atrybuty dla produktó w sklepie on-line |
klasa - atrybuty dla produktó w sklepie on-line |
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 |
|
|
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:
? Coś chyba jest nie tak? Cytat BBcode nie działa ... Działa Pracuj, pracuj, pracuj a będziesz coraz lepszy -------------------- |
|
|
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ć
Ten post edytował acztery 22.04.2006, 00:13:21 |
|
|
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 Cytat a klasa dlatego ze nigdy jeszcze ich nie pisalem. OK - fajnie, że się uczysz 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 Ale allegro ma dodawanie 'podkategorii' w zasadzie w nieskończoność Dziłaj -------------------- |
|
|
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 ..
|
|
|
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.
|
|
|
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 Cytat Chyba sam nie wiesz co ty w ogole robisz. Wydaje mi się, że wie Tylko nie umie tego jasno przedstawić Cytat Ocena: 0/10 Może aby nikogo nie urazić, pozostawmy to bez oceny ? Kolega acztery musi się jeszcze troszkę o klasach nauczyć - powodzenia i wytrwaniu w nauce -------------------- |
|
|
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 |
|
|
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 dlatego tez oceniam moja opinie o przydatnosci skryptu, a to, ze ktos jest poczatukjacy nie powoduje, ze mieknie mi serce
@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 -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
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 ? 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 |
|
|
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
@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ć 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 -------------------- |
|
|
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 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.
|
|
|
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 :/ -------------------- |
|
|
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
|
|
|
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.
|
|
|
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 Smieszne heh... @acztey: A co jesli to bedzie np aparat cyfrowy 11 to stanowczo za malo, wogole ograniczanie sie jakiekolwiek nie jest dobre. -------------------- |
|
|
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
Ten post edytował acztery 22.04.2006, 15:21:39 |
|
|
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. -------------------- |
|
|
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 ?
|
|
|
Wersja Lo-Fi | Aktualny czas: 10.05.2024 - 08:43 |