Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Tablice zmiana wartosci i sprawdzenie, koszyk na tablicach
lewy87r
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.05.2008

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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. ?>
Go to the top of the page
+Quote Post
lewy87r
post
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.05.2008

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


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 ;]
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.
Go to the top of the page
+Quote Post
lewy87r
post
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.05.2008

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


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....
Go to the top of the page
+Quote Post

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: 17.09.2025 - 10:18