Witajcie, mam problem z funkcją którą napisałem, funkcja ta (z założenia) sprawdza czy istnieją jakieś wartości w wielu tablicach na tym samym indeksie.
Kiedy tablica jest pusta, funkcja wykonuje "drugi blok" w "funkcji add" i wszystko jest ok.

Przy drugim produkcie z takimi samymi 'id' itd... nadpisuje się ilość produktów "pierwszy blok", dla indeksu 0 (czyli ok)
Przy trzecim produkcie ale już z innymi wybarwieniami wykonuje się "drugi blok" z indeksem 1 (czyli ok)
Natomiast przy czwartym produkcie i 'id' itd... takim jak w drugim produkcie wykonuje się znowu "blok drugi" i dodaje następny indeks (2) a powinien wykonać "blok pierwszy" i nadpisać indeks 0.

Męczę się już z tym 4 dni i nie wiem o co chodzi, dlatego proszę Was o pomoc wink.gif

  1.  
  2. // funkcja aktualizująca
  3. function update($lp, $u_id, $u_id_wyb, $u_nr_wyb, $u_id_tka, $u_nr_tka, $u_ilosc){ // aktualizacja tablicy;
  4. $_SESSION['koszyk']['id'][$lp]=$u_id;
  5. $_SESSION['koszyk']['id_wyb'][$lp]=$u_id_wyb;
  6. $_SESSION['koszyk']['nr_wyb'][$lp]=$u_nr_wyb;
  7. $_SESSION['koszyk']['id_tka'][$lp]=$u_id_tka;
  8. $_SESSION['koszyk']['nr_tka'][$lp]=$u_nr_tka;
  9. $_SESSION['koszyk']['ilosc'][$lp]=$u_ilosc;
  10. }
  11.  
  12.  
  13. // funkcja dodająca
  14. function add($id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $ilosc){
  15. $x=count($_SESSION['koszyk']['lp']); // ilosc rekordów w tablicy lp
  16.  
  17.  
  18. $a=in_array($id,$_SESSION['koszyk']['id']);
  19. $b=in_array($id_wyb,$_SESSION['koszyk']['id_wyb']);
  20. $c=in_array($nr_wyb,$_SESSION['koszyk']['nr_wyb']);
  21. $d=in_array($id_tka,$_SESSION['koszyk']['id_tka']);
  22. $e=in_array($nr_tka,$_SESSION['koszyk']['nr_tka']);
  23. if(($a == TRUE) and ($b == TRUE) and ($c == TRUE) and ($d == TRUE) and ($e == TRUE)){ // sprawdzenie czy występuje prudukt ze wszystkimi takimi samymi danymi
  24. // pierwszy blok
  25. $kluczid=array_search($id,$_SESSION['koszyk']['id']); // pobranie klucza id
  26. $z=$_SESSION['koszyk']['ilosc'][$kluczid];
  27.  
  28. update($kluczid, $id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $z+1); // aktualizacji jeżeli wszystkie dane są takie same
  29. }else{
  30. // drugi blok
  31. $_SESSION['koszyk']['lp'][]=$x+1;
  32. $_SESSION['koszyk']['id'][]=$id;
  33. $_SESSION['koszyk']['id_wyb'][]=$id_wyb;
  34. $_SESSION['koszyk']['nr_wyb'][]=$nr_wyb;
  35. $_SESSION['koszyk']['id_tka'][]=$id_tka;
  36. $_SESSION['koszyk']['nr_tka'][]=$nr_wyb;
  37. $_SESSION['koszyk']['ilosc'][]=$ilosc;
  38. }
  39. }
  40.  
  41.  
  42.