Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tablice zmiana wartosci i sprawdzenie
Forum PHP.pl > Forum > Przedszkole
lewy87r
Witam,

mam zrobiony koszyk na zasadzie tablicy (w zmiennej session)
jesli dodaje do koszyka produkt to dziala to w ten sposob
  1. <?php
  2. $_SESSION['koszyk'][]=array('id'=>"$id",'ilosc'=>'1');
  3. ?>


I chodzi o to ze nie mam pojecia jak zrobic sprawdzenie czy wpis w tablicy o danym id istnieje i jesli istnieje to zeby ilosc zwiekszyc o 1 ;]
bo w tym momencie dodaje sie do koszyka oddzielny produkt i sa 2 takie same produkty w koszyku.

Prosze albo o podpowiedzi albo o jakies gotowe rozwiazania ;]

(czytalem na temat tablic i szczerze mowiac najwiecej mi one problemu robia)

Szukajac na googlach nie znalazlem nic interesujacego ;]

Pozdrawiam
nospor
troche źle podeszles do sprawy. Powinienes jako index tablicy brac id:
  1. <?php
  2. $_SESSION['koszyk'][$id]=array('ilosc'=>1);
  3. ?>

teraz sprawdzenie to pestka:
  1. <?php
  2. if (!isset($_SESSION['koszyk'][$id]))
  3.  $_SESSION['koszyk'][$id]=array('ilosc'=>1);
  4. else
  5.  $_SESSION['koszyk'][$id]['ilosc']++;
  6. ?>
lewy87r
Hmmm... rozwiazanie banalne ;] ale nie koniecznie mnie satysfakcjonuje bo zbyt duzo zmian bym musial zrobic by to wprowadzic ;] (moj czas na wykonanie tego jest ograniczony)

myslalem nad takim rozwiazaniem ale nie wiem czy to poprawne bo nie dziala :


  1. <?php
  2. $ile=count($_SESSION['koszyk']);
  3. while(-< $ile){
  4. if (isset($_SESSION['koszyk'][$ile][$id])){
  5. $ask='numer to: '.$ile;
  6. }
  7.  
  8. $ile--;
  9. }
  10. ?>


a wyjasnienie:
petla szuka indexu pod ktorym znajduje sie produkt i jak znajdzie to do amiennej $ask wrzuca index ;] a majac index mozna by nadpisac konkretna komurke ;]

problem w tym ze nie bardzo wiem jak to zrobic ;] bo jak pisalem to jestem kiepski w tablicach ;]

a to co splodzilem to nie dziala ;]
nospor
to w ilu ty miejsach masz ten koszyk ze az tyle zmian bys musial zrobic?

Jak chcesz byc kompatybilny wstecz to zrob tak:
  1. <?php
  2. if (!isset($_SESSION['koszyk'][$id]))
  3.  $_SESSION['koszyk'][$id]=array('id' => $id, 'ilosc'=>1);
  4. else
  5.  $_SESSION['koszyk'][$id]['ilosc']++;
  6. ?>

I po sprawie.
lewy87r
Rozwiazanie jest spoko ;] lecz nastapil problem ;] bo trzeba wprowadzic cos takiego jak rozmiarowka ;] i tez w koszyku jest to przetrzymywane ;]
wszystko ok ;] ale bedzie trzeba zapewne zrobic to w ten sposob ze jesli produkt o id 11 jest w bazie i ma rozmiar 11 to jak dodam kolejny produkt o id 11 i rozmiarze innym to powinien pojawic sie produkt nowy (w tym przypadku jest to niemozliwe bo index to id) z tym nowym rozmiarem ;]

kurde... wiec zastosowanie id jako indexu odpada;]
musze podejrzec jak to w oscommerce jest zrobione ;] choc pewnie bardziej skomplikowanie....
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.