Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz php i tablice wielowymiarowe
Kron
post 12.05.2008, 18:16:14
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.05.2008

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


Witajcie.
Tworzę formularz koszyka. Po jego zatwierdzeniu do bazy sql powinny zostać wykonane 2 inserty:
1) ogólny o zamówieniu do tablicy 'zamowienia'
2) szczegółowy, listujący zamówione produkty do tablicy 'zam_produkty'.
O ile z pierwszym nie mam problemu, to drugie nie wychodzi sad.gif
W formularzu mam pola:
- id produktu
- ilość zamówionych sztuk
- cena.
Dla każdego produktu powinien zostać wykonany insert 2) z odpowiednimi wartościami 'ilość' i 'cena'.
Niestety coś mi nie wychodzi z pętlami, i insert zamiast być wykonany tyle razy, ile jest unikalnych produktów, jest wykonywany (dla 2 produktów, różnych cen i ilości) 8 razy...Wiem dlaczego, tylko nie wiem jak to naprawić - jakoś tablice wielowymiarowe nie są moją mocną stroną. Skrypt formularza:
  1. <input type='hidden' name='prd[]' value='$prd'>";
  2. <input type='hidden' name='price[$prd]' value='$price'>";
  3. <input type="text" readonly size="3" name="qty[$prd]" value='$ilosc' />

Skrypt przetwarzający:
  1. <?php
  2. foreach ($_POST['prd'] as $zam_prd_id) 
  3. {
  4. $zam_prd_qty=$_POST['qty['.$zam_prd_id.']'];
  5. $zam_prd_price=$_POST['price['.$zam_prd_id.']'];
  6. $query_zam_det=query(&#092;"INSERT INTO map_zam_prd VALUES ($zam_id,$zam_prd_id,$zam_prd_qty,'$zam_prd_price')\");
  7. }
  8. ?>


Prawdopodobnie daję złe nazwy pól w formularzach (powinno być coś z []) albo z pętlą foreach...Albo z obiema kwestiami winksmiley.jpg
Prośba o pomoc smile.gif

Ten post edytował Kron 12.05.2008, 18:16:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post 12.05.2008, 20:47:44
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




No to kilka porad dotyczących systemów e-commerce.

Koszyk
Możesz rozwiązać problem na dwa sposoby:
1. Trzymasz koszyk w sesji.
2. Trzymasz koszyk w bazie.

W koszyku trzymasz wszystko - nazwa, opis, cena, itd. Daje to gwarancję, że w przypadku zmiany, klient ma ten sam koszyk.

Oba rozwiązania mają swoje wady i zalety. Jakie, to już musisz poszukać w necie (temat rzeka).

Zmiana ceny
Jeśli w jakiś sposób cena ulegnie zmianie w trakcie sesji kupowania (klient ma w koszyku produkt, którego cena się zmieniła), masz dwie możliwości:
1. Klient kupuje produkt za kwotę, jaka była w momencie wrzucenia do koszyka.
2. Klientowi wyświetla się informacja o zmianie w produkcie, który ma koszyku i dostaje możliwość wyboru - usuń z koszyka / akceptuj zmiany.

Z doświadczenia wiem, że opcja 2 jest bardzo niepożądana (wyjątkiem są bardzo specyficzne rodzaje produktów).


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 19:31