Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz php i tablice wielowymiarowe
Kron
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Prośba o pomoc (IMG:http://forum.php.pl/style_emoticons/default/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
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).
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 15:16