![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 2 Dołączył: 15.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam koszyk, który jest tablicą i składa się z następujących elementów:
$koszyk[$i][0] = idproduktu $koszyk[$i][1] = kolor1 $koszyk[$i][2] = kolor2 gdzie $i, to jest numer kolejnego koszyka (produktu w koszyku). Dodając nowe produkty muszę sprawdzić, czy dodawany produkt nie znajduje się już w koszyku (jeżeli idproduktu=id_prod_w_koszyku AND kolor1=kolor1_w_koszyku AND kolor2=kolor2_w_koszyku, to produkty są takie same). Problem polega na tym, że nie mogę sobie poradzić ze sprawdzeniem powyższego warunku, ponieważ dodawane pordukty także są w tablicy i ich ilośc (tak jak w koszyku) jest zmienna. Jeśli ma ktoś jakiś pomysł, to będę wdzięczny za pomoc. Ten post edytował Radzio84 22.01.2008, 00:46:19 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 159 Pomógł: 6 Dołączył: 2.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Może zlicz ilość elementów tablicy za pomocą count() i sprawdzaj czy obydwie tablice maja tyle samo elementów, jeśli tak to po kolejki w pętli sprawdzaj czy wartości w kolejnych elementach są takie same.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 2 Dołączył: 15.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Robiłem tak:
Kod for($i0;$i<count($ile_produktow_do_dodania);$i++) { for($j0;$j<count($ile_produktow_w_koszyku);$j++) { tutaj sprawdzam po kolei elementy tablic } } ale nie zdaje to egzaminu. Ten post edytował Radzio84 22.01.2008, 07:31:31 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 75 Dołączył: 19.08.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Musi zdać egzamin, pętlę w pętli masz dobrze zagnieżdżoną.
Pokaż nam, jaki warunek sprawdzasz wewnątrz. -------------------- Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 2 Dołączył: 15.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Początkowo, gdy nie było kolorów to sprawdzałem tylko po idproduktu. Wrzucałem sobie wszystkike idproduktow, które znajdują się w koszyku do tablicy i potem sprawdzałem czy nowy produkt znajduje się w zbiorzej tych id:
Kod for($k=1;$k<=$ile_prod_w_koszyku;$k++) { $id_prod_w_koszyku[]=$koszyk[$k][0]; } Następnie sprawdzałem, czy dodawany produkt jest już w powyższej tablicy, jeśli nie jest to wrzucałem to id do tablicy "prod_do_dodania". W przeciwnym wypadku wrzucałem takie id do tablicy "do_poprawy_ilosci" i zapamietywalem dodatkowo ilosc dodawanego towaru - gdy dodawany produkt jest juz w koszyku, to zmieniam tylko jego ilosc. Kod for($j=0;$j<$ile_towarow_do_dodania;$j++) { if(!in_array($idtowaru[$j], $id_prod_w_koszyku)) $prod_do_dodania[]=$idtowaru[$j]; } else { $do_poprawy_ilosci[$j][0]=$idtowaru[$j]; $do_poprawy_ilosci[$j][1]=$ilosc2[$j]; } Następnie zczytywałem pokolei powyższe tablice w pętli i zmieniałem tylko ilość, bądź dodawałem jako kolejny produkt w koszyku. Teraz natomiast muszę porównać jeszcze kolory i tu mam roblem. Ten post edytował Radzio84 22.01.2008, 08:06:55 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 159 Pomógł: 6 Dołączył: 2.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Może tak to ma mniej więcej wyglądać ?
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 13:20 |