Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z koszykiem
przemo191
post
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 3
Dołączył: 1.08.2011

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


Stworzyłem koszyk oparty na sesiach. Do koszyka oprócz id i ilości muszę dodawać id_wybarwienia_drewna, nr_wybarwienia, id_tkaniny oraz nr_tkaniny.
Wszystko dobrze działa dopóki ktoś nie zachcę sobie kupić takiego samego przedmiotu tylko np z innym wybarwieniem drewna.


  1. $koszyk = Array(
  2. 'lp' => array(),
  3. 'id' => array(),
  4. 'id_wyb' => array(),
  5. 'nr_wyb' => array(),
  6. 'id_tka' => array(),
  7. 'nr_tka' => array(),
  8. 'ilosc' => array(),
  9. );
  10. $_SESSION['koszyk']=$koszyk;


funkcja dodawania
  1.  
  2. function add($id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $ilosc){
  3. $x=count($_SESSION['koszyk']['lp']); // ilosc rekordów w tablicy lp
  4.  
  5. $_SESSION['koszyk']['lp'][]=$x+1;
  6. $_SESSION['koszyk']['id'][]=$id;
  7. $_SESSION['koszyk']['id_wyb'][]=$id_wyb;
  8. $_SESSION['koszyk']['nr_wyb'][]=$nr_wyb;
  9. $_SESSION['koszyk']['id_tka'][]=$id_tka;
  10. $_SESSION['koszyk']['nr_tka'][]=$nr_wyb;
  11. $_SESSION['koszyk']['ilosc'][]=$ilosc;
  12. }
  13.  

funkcja aktualizacji która ma dodać do $ilosc jeden produkt, wtedy gdy wszystkie id,nr itd... są takie same.
  1. function update($lp, $u_id, $u_id_wyb, $u_nr_wyb, $u_id_tka, $u_nr_tka, $u_ilosc){ // aktualizacja tablicy
  2. $_SESSION['koszyk']['id'][$lp]=$u_id;
  3. $_SESSION['koszyk']['id_wyb'][$lp]=$u_id_wyb;
  4. $_SESSION['koszyk']['nr_wyb'][$lp]=$u_nr_wyb;
  5. $_SESSION['koszyk']['id_tka'][$lp]=$u_id_tka;
  6. $_SESSION['koszyk']['nr_tka'][$lp]=$u_nr_tka;
  7. $_SESSION['koszyk']['ilosc'][$lp]=$u_ilosc;
  8. }


wszystko osobno działa natomiast po połączeniu tego w jedno już nie jest tak dobrze

  1. function add($id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $ilosc){
  2. $x=count($_SESSION['koszyk']['lp']); // ilosc rekordów w tablicy lp
  3.  
  4. var_dump($kluczid=array_search($id,$_SESSION['koszyk']['id'])); echo 'jeden<br />';
  5. var_dump($kluczid_wyb=array_search($id_wyb,$_SESSION['koszyk']['id_wyb'])); echo 'dwa<br />';
  6. var_dump($klucznr_wyb=array_search($nr_wyb,$_SESSION['koszyk']['nr_wyb'])); echo 'trz<br />';
  7. var_dump($kluczid_tka=array_search($id_tka,$_SESSION['koszyk']['id_tka'])); echo 'cztery<br />';
  8. var_dump($klucznr_tka=array_search($nr_tka,$_SESSION['koszyk']['nr_tka'])); echo 'piec<br />';
  9. var_dump($kluczilosc=array_search($ilosc,$_SESSION['koszyk']['ilosc'])); echo 'szesc<br />';
  10.  
  11. if(($kluczid == $id) and ($kluczid_wyb == $id_wyb) and ($klucznr_wyb == $nr_wyb) and ($kluczid_tka == $id_tka) and ($klucznr_tka == $nr_tka)){
  12.  
  13. $_SESSION['koszyk']['lp'][]=$x+1;
  14. $_SESSION['koszyk']['id'][]=$id;
  15. $_SESSION['koszyk']['id_wyb'][]=$id_wyb;
  16. $_SESSION['koszyk']['nr_wyb'][]=$nr_wyb;
  17. $_SESSION['koszyk']['id_tka'][]=$id_tka;
  18. $_SESSION['koszyk']['nr_tka'][]=$nr_wyb;
  19. $_SESSION['koszyk']['ilosc'][]=$ilosc;
  20. }else{
  21. $a=$_SESSION['koszyk']['ilosc'][$kluczid];
  22. $a++;
  23. update($kluczid, $id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $a);
  24. }
  25. }


Od razu dodam że pisałem to sam więc spodziewam się zrypki (IMG:style_emoticons/default/wink.gif)

Już nieaktualne rozwiązanie znalazłem używając funkcji in_array.


  1. function add($id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $ilosc){
  2. $x=count($_SESSION['koszyk']['lp']); // ilosc rekordów w tablicy lp
  3. if((in_array($id,$_SESSION['koszyk']['id']) == TRUE) and (in_array($id_wyb,$_SESSION['koszyk']['id_wyb']) == TRUE) and (in_array($nr_wyb,$_SESSION['koszyk']['nr_wyb']) == TRUE) and (in_array($id_tka,$_SESSION['koszyk']['id_tka']) == TRUE) and (in_array($nr_tka,$_SESSION['koszyk']['nr_tka']) == TRUE)){
  4.  
  5. $kluczid=array_search($id,$_SESSION['koszyk']['id']);
  6. update($kluczid, $id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $ilosc+1);
  7. }else{
  8.  
  9. $_SESSION['koszyk']['lp'][]=$x+1;
  10. $_SESSION['koszyk']['id'][]=$id;
  11. $_SESSION['koszyk']['id_wyb'][]=$id_wyb;
  12. $_SESSION['koszyk']['nr_wyb'][]=$nr_wyb;
  13. $_SESSION['koszyk']['id_tka'][]=$id_tka;
  14. $_SESSION['koszyk']['nr_tka'][]=$nr_wyb;
  15. $_SESSION['koszyk']['ilosc'][]=$ilosc;
  16. }
  17. }
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: 22.08.2025 - 23:52