Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Opis produktu w bazie ze znakami html
Forum PHP.pl > Forum > PHP
herbatniczek
Witam.
Mam różne produkty z różną ilością cech char. Chce to jakoś sensownie umieścić w bazie. Mam taki pomysł, żeby np przy umieszczeniu nowego opisu w bazie używać takiego znaku :: to oznaczałoby przejscie do nastepnej cechy. czyli np przekątna - 17'' :: czas reakcji - 16ms :: itd. Teraz explodem to wszystko do tablicy, i na ekran kazda cecha. Jak Wy sobie poradziliście z opisem produktów? czy uwazacie, ze wpisywanie danych w takim formacie jest sensownym rozwiazaniem? jesli tak, to co powiecie na <b>przekatna</b> - 17'' :: itd...
zeby nazwa cechy byla wytluszczona. jesli to tez ma sens, to jakiej funkcji uzyc, zeby <b> zadzialalo jak znacznik a nie tekst, przy wypisywaniu na ekranie?

THX
Parti
Cytat(herbatniczek @ 2004-11-05 21:16:55)
czy uwazacie, ze wpisywanie danych w takim formacie jest sensownym rozwiazaniem?

Nie. Najlepiej zrobić tabele z kolumnami dla każdej możliwej cechy produktu. Raz będziesz chciał wyświetlić przekątną w bold, a raz italik. Innym razem możesz chcieć posortować wg. przekątnej albo wyświetlić tylko te produkty, które mają czas reakcji większy od 17ms.
herbatniczek
dobrze, więc powiem może dokładniej co już mam:

jest drzewo kategorii i podkategorii. i podkategoriami - dlatego drzewo, żebym mógł mieć nieskończoną ilość tych kat i podkategorii. moje drzewo nadaje czy to kategorii, czy podkategorii unikalne ID. czyli

.................1
............2........3
..........4..5

i teraz obok id produktu w bazie (jak rozumiem sugerujesz, żeby każdy produkt miał oddzielną tabelę), mialbym id tej podkategorii, czy tez kategorii.
Teraz moje kategorie wyglądają tak, ze mam
przodek - id przodka
nazwa
potomek - true/false
katID.
I co dalej proponujesz? jeśli oddzielne pola - cechy to i oddzielne tabele dla monitorów, drukarek itd, więc nie mając jednej tabeli produktów chyba musze dodac nazwe tabeli produktu do tabeli kategorii?
ActivePlayer
Partiemu chodzilo chyba bardziej o to zeby tabela z danymi o produktach zawierała tyle pól, ile maksymalnie moze posiadac produkt np.

Id nazwa .... cecha1 cecha2 itd.

I potem jak masz cos wpisane w danym polu to to wyswietlasz a jak nie to pomijasz... pomaga to w tym ze mozesz potem sortowac np wg. cecha1 itp... proponuje nazewnictwo takie ze pola w nazwie są nazwą cechy a wartosc tym co ma byc w zalozeniu Twoim po myslniku... potem mozesz w kodzie php w roznych miejscach strony roznie pokazywac dane...
kociou1
Hmmm...
A może tak:

wpis w bazie: <i>NazwaCechy1</i>::Cecha1||<b>NazwaCechy2</b>::Cecha2||....

odczyt z bazy i explode:
  1. <?php
  2.  
  3. $cechy=@explode('||', $dane_z_bazy);
  4.  
  5. ?>

W efekcie dostajemy tablicę:
  1. <?php
  2.  
  3. $cechy[]='<i>NazwaCechy1</i>::Cecha1';
  4. $cechy[]='||<b>NazwaCechy2</b>::Cecha2';
  5.  
  6. ?>

i dalej już chyba wiadomo o co chodzi smile.gif
zYm3N
w polu text bazy:

<nazwa>xx</nazwa>
<wielkosc>532</wielkosc>
<koszt>523</koszt>

itp. idt. Podobno dla dużej ilości danych wolne, ale ja sprawdziłem to w jednym ze swoich skryptów i działa wyśmienicie :-)

Gdzieś miałem kod do rozwalania ciągu na tag + zawartość, ale ni mogę szybko znaleźć :|
ActivePlayer
gorzej jak potem sobie chcesz sobie posortowac wg jakiejs cechy
zYm3N
tak. Masz rację. jednakże myślę, że dla stron z niewielką ilościa odwiedzin dziennie wystarczy napisanie odpowiedniego interfejsu i wszystko powinno smigać sprawnie.

pzodr.
lisu
A gdyby zrobic 3 tabele:

produkty:
id_prod|nazwa_produktu|id_kategorii|cena1|cena2|ile_w_magazynie|itpitd

cechy
id_cechy|nazwa_cechy

wlasciwosci
id_wl|id_cechy|id_prod|wartosc

I wtedy np masz w tabeli prodykty monitor.
Dodajesz mu ceche 'przekatna', a we wlasciwosci dajesz '17ms'.
Tak mozesz dodac nieskonczenie wiele (bez przesady) cech oraz zmieniac jednostki.
Warto przyporzadkowac cechy odpowiedzniej grupie produktow (dyski twarde nie maja przekatnych monitora).
komar07
Sprawdz gotowe rozwiązania http://oscommerce.com

a jak juz tak bardzo upierasz sie przy cechach w jednym polu to poprostu stworz tablice cech jakie ma produkt zapisujac do bazy uzyj serialize() wyciagajac unserialize() i obrabiaj do woli tresc.
herbatniczek
dzięki za posty. narazie chce mieć połączenie tego wszystkiego o czym mówiliście. czyli możliwość sortowania i i nie bawienie sie w 20 tablic dla różnych produktów. czyli będzie opis, i pola, po których będzie można sortować - wspólne dla all produktów takie jak cena, nazwa producemt. przekątna, czas reakcji, - to moge zawrzeć przecież w moim drzewku kategorii. kto sortowałby po przekątnej ;-)
rogrog
reguły normalizacji baz danych mówią o czymś takim że jedna kolumna w tabeli powinna przechowywać tylko jedną informację. Zgodnie z tymi regułami Twoja baza powinna wyglądać mniej więcej tak jak podał Lisu. To nie jest 20 tabel, tylko 3. I daje Ci to ogromne możliwości. Tak się robi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.