Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]liczenie kosztów przesyłki w koszyku
Forum PHP.pl > Forum > Przedszkole
piekloniebo
Witam,
Mam problem z policzeniem kosztów przesyłki osobno dla każdego producenta (vendora) w koszyku:

Mam array $cart w której są dane:
product_id
category_id
quantity
vendor_id

I teraz jak np. mam w koszyku
product_id=1,vendor=1,
product_id=2,vendor_id=2

to koszt przesyłki jest 6 zł

chciałbym móc policzyć koszt dla każdego vendora osobno czyli w tym przypadku powinno być 12 zł.


Jak napisać funkcję która to policzy odpowiednio?

Pozdrawiam,
Darek
kfc4
vandor_id=1 to jest 6 zł, vandor_id=2 to jest 9zł i tak dalej. Przekazujesz funkcji tablicę, w której są zapisani ci vendorzy. Dalej sprawdzasz w jakiejś pętli czy = 1 jak tak to do licznika (tworzysz przed tą pętlą i nadajesz wartość 0), jak = 2 dodajesz 9 zł etc. Podałeś zbyt mało informacji by móc jakoś więcej pomóc.
piekloniebo
To może jeszcze raz:
w zasadzie stawka wysyłkowa jest stała albo załóżmy niech taka będzie.
$shipping_rate = 6zł (polecony priorytet)

więc po twojej odpowiedzi pomyślałem że można to zrobić w ten sposób że zliczyłbym ile jest w koszyku unikalnych numerów dostawcy (vendor_id) i przemnożył to razy stawka wysyłkowa

ale teraz mam taki problem
array $cart
1
$vendor_id = 1
$product_id = 1
2
$vendor_id = 2
$product_id = 234
3
$vendor_id = 1
$product_id = 33


czyli:
$vendor_1 występuje 1 raz (czyli 1 x 6zł)
$vendor_2 występuje 2 razy (tutaj też powinno być 1 raz 6 zł)

czy jest jakaś funkcja która policzy mi ile unikalnych elementów występuje w tablicy (albo raczej różnych jeżeli coś występuje dwa razy to liczy jako jeden)
nie wiem czy to dobrze wytłumaczyłem?questionmark.gif

Darek

Ok,
Znalazłem w necie coś takiego do policzenia:
  1.  
  2. <?
  3.  
  4. $arr=array(140,123,34,140,23,123,140,140,123);
  5.  
  6.  
  7. ?>
  8.  
  9.  
  10.  


To mi chyba pomoże?
thek
Wybieranie unikalnych elementów tablicy to array_unique... Wystarczy tylko zajrzeć do manuala przy funkcjach tablicowych... sciana.gif
piekloniebo
A mam jeszcze jedno pytanie. Jak mogę stworzyc pętlą tablicę z elementami Vendor_id którą mogę potem przejrzeć tym array_unique?

Na razie mam tak:

  1. for ($i=0;$i<$cart["idx"];$i++) {
  2.  
  3. $vendor_rows[$i]['vendor_id'] = $db->f("vendor_id");
  4.  
  5. }
  6.  

ale to mi tworzy taką tablicę w tablicy
array = (
0
vendor_id=1
1
vendor_id=2

)

Ale to nie o to chodzi bo tego się nie da przeszukać.
Jak zrobić prostszą tablice taką do przeszukania.

Pozdr







Pozdrawiam,
Darek

OK,
Więc zrobiłem tak:
  1. $vendor_rows[] = $db->f("vendor_id");

a później

  1. $vendors_count = (count ( array_unique($vendor_rows)));


i działa!!

Ten kod pochodzi z Virtuemarta z Joomli.
Jeżeli ktoś teź hackuje VM to chętnie wymienię się uwagami.
Już mi się trochę udalo zrobić.
Np. hack pozwalający określać kolor produktu i potem wyświetlać te produkty na froncie.

Można obejrzeć na piekloniebo.pl

Pozdrawiam,
Darek
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.