mambus
1.06.2011, 13:54:26
Witam.
Nie mogę poradzić sobie z pewną rzeczą, mianowicie:
piszę moduł, którego zadaniem jest możliwość składania zamówień na wybrane towary. Moja propozycja jaka padła odnośnie działania skryptu:
jest powiedzmy lista 3 produktów, każdy z nich kolejno niech ma swoje unikalne identyfikatory: 2 , 15, 37. Firma, chce zamówić sobie 2 sztuki pierwszego produktu, 3 sztuki drugiego i 5 trzeciego.
Teraz: chcę, aby do bazy wpisywał się następujący string:
2-1;15-3;37-5;
czyli: przed kreską id produktu - za kreską jego liczba a średnik to rozdzielnik dla następnego produktu.
Takie rozwiązanie wybrałem z uwagi na to, że przy wyciąganiu tego z bazy, będzie można to łatwo rozbić przez funkcję explode.
Problem mam ze zrobieniem powyższego stringa...
W formularzu POSTują mi się prawidłowe tablice, ale implode nie może mi tego złączyć w całość bo albo "array" albo że podałem nie prawidłowy argument dla funkcji...
ma ktoś jakiekolwiek propozycje ?
Bardzo proszę o pomoc... przeszukałem nasze forum, inne fora i porady w internecie i nie bardzo... podkreślam ze nie chodzi o array_merge.
mat-bi
1.06.2011, 13:57:04
Ja bym w ogóle inaczej zaprojektował bazę - zrobiłbym tabele zamowione_produkty, w nim id_zamowienia, product_id, ilosc i tak bym potem tylko wyciągał za pomocą zapytania
Mustava
1.06.2011, 13:58:34
może nie na temat, ale po co zajmować skrypt najpierw łączniem a później dzieleniem tego? - może jednak prościej by było by to silnik bazy zajął się takimi sprawami (przy pomocy odpowiednich sql'i i sktruktury tabel)
worek
1.06.2011, 14:56:39
Popieram przedmówcę, Odpowiednie zaprojektowanie tabeli od początku ułatwi pracę i skalowalność bazy danych. Nie będzie potem trzeba kombinować z explode i innymi bajerami a wystarczy np JOIN z sql. Pozdrawiam
mambus
1.06.2011, 15:25:03
Dziękuje i doceniam Wasze porady, ale mimo wszystko chciałbym się skupić na moim pomyśle. Nie jest to jednostronne zastosowanie, bo później biuro będzie pobierać te zamówienia i odsyłać do nadawców ze zweryfikowaną liczbą produktów.
Skupmy się na tym, jak połączyć ze sobą te dwie tablice...
jedna to:
$id_product = $_POST['id_product'];
unikalny identyfikator produktu,
a druga to:
$product = $_POST['product'];
gdzie jest to liczba zamówionego produktu
hmm...
Powiedz w jakiej formie masz te produkty i ilości z formularza przez $_POST podane, bo teraz jest zgadywanka co z czym jak połączyć, bo nie wiadomo nic. Zrób var_dump($_POST) i powiedz co jest czym, to będzie można Ci pomóc.
Teraz bowiem nie wiemy jak wygląda u Ciebie kwestia przechowywania kilku produktów. Czy masz w formularzu jeden produkt za każdym razem czy od razu kilka za jednym zamachem, czy zamówienia się mają sumować jakoś?
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.