Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z foreach, Pętla foreach
lukasz_web
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 26.02.2009

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


Opisem wstępu robię w sklepie internetowym moduł szybkich zakupów w którym trzeba podać numer katalogowy i ilość zamawianego produktu

  1.  
  2. foreach($_POST['products_model'] as $products_model) {
  3. $thulequery="SELECT products_id FROM products WHERE products_model = '{$products_model}' ";
  4. $thule_products_id_query = mysql_query($thulequery) or die(mysql_error());
  5. $thule_products_id = mysql_result($thule_products_id_query,0);
  6.  
  7.  
  8. foreach($_POST['quantity'] as $ilosc_p) {
  9.  
  10.  
  11. $cart->add_cart($thule_products_id, $cart->get_quantity($thule_products_id)+$ilosc_p);
  12.  
  13. }
  14. }

Pierwsza pętlą foreach zachowuje się poprawnie dodaje mi numery katalogowe do koszyka w sklepie internetowym. Problem polega z drugą która ma dodawać ilości sztuk do koszyka.

Problem polega na tym że jak dodam taki input:
[nr. kat][ilość]
[0001][2]
[0002][4]

Do koszyka doda mi te dwa numery katalogowe ale ilości sumuje z inputów do pojedynczego numeru katalogowego w KOSZYKU:
[nr. kat][ilość]
[0001][6]
[0002][6]

A powinno dodać do numeru 0001 2 szt. a do numeru 0002 4szt.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukasz_web
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 26.02.2009

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


Pełen kod z twoja zmianą:

  1. case 'add_product_quick' :
  2. $query_price_to_guest_result = ALLOW_GUEST_TO_SEE_PRICES;
  3. if ((($query_price_to_guest_result=='true') && !(tep_session_is_registered('customer_id'))) || ((tep_session_is_registered('customer_id')))) {
  4. if (isset($_POST['products_model'])) {
  5.  
  6. $products = array();
  7.  
  8. $products_number = count($_POST['products_model']);
  9.  
  10. for($i = 0; $i < $products_number; $i += 1) {
  11. $products_model = $_POST['products_model'][$i];
  12. $quantity = $_POST['quantity'][$i];
  13.  
  14. if(isset($products[$product_model])) {
  15. $products[$product_model]['quantity'] += $quantity;
  16. } else {
  17. $thulequery="SELECT products_id FROM products WHERE products_model = '{$products_model}' ";
  18. $thule_products_id_query = mysql_query($thulequery) or die(mysql_error());
  19.  
  20. $products[$product_model] = array(
  21. 'id' => mysql_result($thule_products_id_query,0),
  22. 'quantity' => $quantity,
  23. );
  24. }
  25. }
  26.  
  27. foreach($products as $product) {
  28. $cart->add_cart($product['id'], $cart->get_quantity($product['id']) + $product['quantity']);
  29. }
  30. }
  31.  
  32. tep_redirect(tep_href_link($goto, tep_get_all_get_params(array('action'))));
  33.  
  34. } else {
  35. $navigation->set_snapshot();
  36. tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
  37. }
  38. break;
  39.  



Formularz:

  1. <?php echo '<label for="p_scnts"><input type="text" size="30" name="products_model['.$licznik_produktow.']" value="" placeholder="Wpisz numer katalogowy GRENE" /><input type="text" name="quantity['.$licznik_produktow.']" value="" maxlength="3" size="5" placeholder="ilość" /></label>'; ?>


pola input powielam sobie przez jquery.
Go to the top of the page
+Quote Post

Posty w temacie
- lukasz_web   [PHP]Problem z foreach   30.10.2013, 10:18:08
- - SmokAnalog   Przeanalizuj taki kod: [PHP] pobierz, plaintext $p...   30.10.2013, 10:48:27
- - lukasz_web   Dzięki ale nadal ten sam wynik: [nr. kat][ilość] [...   30.10.2013, 10:59:08
- - SmokAnalog   To coś źle robisz. Pokaż formularz.   30.10.2013, 11:05:06
- - lukasz_web   Pełen kod z twoja zmianą: [PHP] pobierz, plaintex...   30.10.2013, 11:12:45
- - SmokAnalog   Tak myślałem, masz błąd w formularzu. Usuń indeksy...   30.10.2013, 11:20:49
- - lukasz_web   Za rady wielki + Ale nadal jest efekt ten sam, jeż...   30.10.2013, 11:35:17
- - SmokAnalog   Jesteś pewien, że prawidłowo używasz tej metody do...   30.10.2013, 11:39:55
- - lukasz_web   To działa: [PHP] pobierz, plaintext case 'add_li...   30.10.2013, 11:42:00
- - SmokAnalog   Zrób taki test jak napisałem powyżej i pokaż wynik...   30.10.2013, 11:46:35
- - lukasz_web   Zrobiłem test i nic mi nie zwraca. CytatJesteś pew...   30.10.2013, 12:00:48
- - SmokAnalog   Jak to nic nie zwraca? Coś musi zwracać. Przed tą...   30.10.2013, 12:06:07
- - lukasz_web   Dokładnie w złym miejscu wpisałem sorki ale mam ju...   30.10.2013, 12:12:58
- - SmokAnalog   I mamy buga z mojej strony. W całym moim fragmenci...   30.10.2013, 12:18:54
- - lukasz_web   Działa! Jest idealny efekt array(2) { [...   30.10.2013, 12:25:59
- - SmokAnalog   Jak jesteś z Krakowa to zaproszenie przyjęte   30.10.2013, 12:32:01
- - lukasz_web   Kurcze kawałek mam ja z wielkopolski podziękować   30.10.2013, 12:33:09


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: 10.10.2025 - 17:07