Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z dodaniem do tablicy....
Forum PHP.pl > Forum > Przedszkole
Sito_s
Mam taki kod
  1. <?php
  2.  
  3. function add($ile, $produkt, $cena){
  4. global $produkt;
  5. if(!isset($_SESSION['produkty'])){
  6.  
  7. $_SESSION['produkty'][] = $produkt;
  8. $_SESSION['ceny'][] = $cena;
  9. $_SESSION['ilosc'][] = $ile;
  10.  
  11. }else{
  12. foreach($_SESSION['produkty'] as $key=>$value){
  13. if($produkt == $value){
  14.  
  15. $_SESSION['ilosc'][$key] =$_SESSION['ilosc'][$key] + $ile;
  16. }else{
  17. $_SESSION['produkty'][] = $produkt;
  18. $_SESSION['ceny'][] = $cena;
  19. $_SESSION['ilosc'][] = $ile;
  20.  }
  21. }
  22. }
  23. }
  24.  
  25. ?>

i gdy poraz pierwszy dodaje nowy produkt jest oki, gdy wpisze jeszcze raz tą samą nazwę jest oki bo zwiększa ilość a gdy wpisze coś innego to mi to dodaje pare razy i po ponownym wpisaniu pierwszej wartości nie zwięsza ilości produktu tylko dodaje kilka razy następny.

Gdzie jest dziura i czy tkwi problem.
kszychu
Cytat(Sito_s @ 2005-04-27 12:16:28)
Gdzie jest dziura i czy tkwi problem.

W tym, że nieprawidłowo zatytułowałeś ten wątek. Popraw to, albo go zamknę.
nospor
  1. <?php
  2.  
  3. function add($ile, $produkt, $cena){
  4.     global $produkt;
  5.     if(!isset($_SESSION['produkty'])){
  6.         
  7.         $_SESSION['produkty'][] = $produkt;    
  8.         $_SESSION['ceny'][] = $cena;
  9.         $_SESSION['ilosc'][] = $ile;
  10.     
  11.     }else{        
  12.             if($key=array_search($produkt,$_SESSION['produkty']))
  13.                 $_SESSION['ilosc'][$key]+=$ile;
  14.             else{
  15.                 $_SESSION['produkty'][] = $produkt;
  16.                 $_SESSION['ceny'][] = $cena;
  17.                 $_SESSION['ilosc'][] = $ile;
  18.            }
  19.     }
  20. }
  21.  
  22. ?>
Sito_s
Już lepjej ale gdy podam ten sam produkt to mi dodaje to tablicy a nie zwiększa ilość.
nospor
A powinien zwiększać. Na pewno podajesz taką samą nazwę produktu? wielkośc liter się zgadza i tym podobne?. A już chyba wiem. Pierwszy produkt ma index 0 i w warunku jest to niby false. mala poprawka:

  1. <?php
  2.  
  3. function add($ile, $produkt, $cena){
  4.     global $produkt;
  5.     if(!isset($_SESSION['produkty'])){
  6.         
  7.         $_SESSION['produkty'][] = $produkt;    
  8.         $_SESSION['ceny'][] = $cena;
  9.         $_SESSION['ilosc'][] = $ile;
  10.     
  11.     }else{  
  12.             $key=array_search($produkt,$_SESSION['produkty']);
  13.             if($key!==false && $key!==null)
  14.                 $_SESSION['ilosc'][$key]+=$ile;
  15.             else{
  16.                 $_SESSION['produkty'][] = $produkt;
  17.                 $_SESSION['ceny'][] = $cena;
  18.                 $_SESSION['ilosc'][] = $ile;
  19.            }
  20.     }
  21. }
  22.  
  23. ?>
Sito_s
O dzięki bardzo. Bo niewiedziałem jak to poprawić... masz punkt.
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.