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
id - id produktu
id_wyb - id producenta wybarwienia
nr_wyb - nr wybarwienia producenta
id_tka - id producenta tkaniny
nr_tka - nr tkaniny producenta
// funkcja aktualizująca
function update($lp, $u_id, $u_id_wyb, $u_nr_wyb, $u_id_tka, $u_nr_tka, $u_ilosc){ // aktualizacja tablicy;
$_SESSION['koszyk']['id'][$lp]=$u_id;
$_SESSION['koszyk']['id_wyb'][$lp]=$u_id_wyb;
$_SESSION['koszyk']['nr_wyb'][$lp]=$u_nr_wyb;
$_SESSION['koszyk']['id_tka'][$lp]=$u_id_tka;
$_SESSION['koszyk']['nr_tka'][$lp]=$u_nr_tka;
$_SESSION['koszyk']['ilosc'][$lp]=$u_ilosc;
}
// funkcja dodająca
function add($id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $ilosc){
$x=count($_SESSION['koszyk']['lp']); // ilosc rekordów w tablicy lp
$a=in_array($id,$_SESSION['koszyk']['id']);
$b=in_array($id_wyb,$_SESSION['koszyk']['id_wyb']);
$c=in_array($nr_wyb,$_SESSION['koszyk']['nr_wyb']);
$d=in_array($id_tka,$_SESSION['koszyk']['id_tka']);
$e=in_array($nr_tka,$_SESSION['koszyk']['nr_tka']);
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
// pierwszy blok
$kluczid=array_search($id,$_SESSION['koszyk']['id']); // pobranie klucza id
$z=$_SESSION['koszyk']['ilosc'][$kluczid];
update($kluczid, $id, $id_wyb, $nr_wyb, $id_tka, $nr_tka, $z+1); // aktualizacji jeżeli wszystkie dane są takie same
}else{
// drugi blok
$_SESSION['koszyk']['lp'][]=$x+1;
$_SESSION['koszyk']['id'][]=$id;
$_SESSION['koszyk']['id_wyb'][]=$id_wyb;
$_SESSION['koszyk']['nr_wyb'][]=$nr_wyb;
$_SESSION['koszyk']['id_tka'][]=$id_tka;
$_SESSION['koszyk']['nr_tka'][]=$nr_wyb;
$_SESSION['koszyk']['ilosc'][]=$ilosc;
}
}