Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sumowanie produktów w koszyku
misteroous
post 16.11.2019, 14:21:18
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 15.11.2019

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


Witam serdecznie wszystkich użytkowników.
Jestem nowy na forum i od razu zaznaczę że dopiero zaczynam przygodę z PHP.

Wracając jednak do tematu, potrzebuję pomocy w przerobieniu skryptu aby po dodaniu jednego produktu do koszyka zmieniał tylko liczbę z ilości:1 na 2, 3 itd. ponieważ póki co, zapisuję produkt jeden pod drugim po prostu w ilości:1.

Jeżeli źle się wyraziłem lub nie do końca jest jest jasne to co napisałem, to chętnie odpowiem na wszystkie pytania.

Poniżej przedstawiam skrypt i liczę na pomoc.

  1. <?php
  2. do_koszyka(false);
  3. $akcesoria=$_SESSION['koszyk']['akcesoria'];
  4.  
  5. echo '<br />';
  6. if (count($akcesoria)===0)
  7. {
  8. echo 'Twoje zamówienie jest puste!';
  9. return;
  10. }
  11.  
  12. $suma=0;
  13.  
  14. if (count($akcesoria)>0)
  15. {
  16. echo '<br /> <br />';
  17. for($k=0;$k<count($akcesoria);$k++)
  18. {
  19. $suma+=$akcesoria[$k]['cena']*$akcesoria[$k]['ilosc'];
  20. echo ($k+1).'. <strong>'.$akcesoria[$k]['opis'].'</strong>, cena: <strong><span style="color:brown">'.$akcesoria[$k]['cena'].'</span> zł</strong>'.', ilość: '.$akcesoria[$k]['ilosc'].'<br />'."\n";
  21. }
  22. }
  23. ?>


Próbowałem już na różne sposoby ale co najwyżej udawało mi się zliczyć liczbę wszystkich produktów...

Ten post edytował misteroous 16.11.2019, 14:28:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
misteroous
post 21.11.2019, 04:03:51
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 15.11.2019

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


No dobrze udało mi się to zrobić w taki sposób, że kiedy

  1. <?php
  2. $text=[
  3. "1||Kurczak Kung Pao",
  4. "1||Kurczak Kung Pao",
  5. "1||Wołowina w czerwonym curry",
  6. "1||Wołowina w czerwonym curry",
  7. ];
  8. $sum = [];
  9. foreach($text as $row)
  10. {
  11. list($value,$name) = explode("||", $row);
  12.  
  13. if(!isset($sum[$name])){
  14. $sum[$name] = 0;
  15. }
  16.  
  17. $sum[$name] += $value;
  18. }
  19. var_dump($sum);
  20. ?>

skrypt działa i wyświetla:
  1. array(2) { ["Kurczak Kung Pao"]=> int(2) ["Wołowina w czerwonym curry"]=> int(2) }

czyli zlicza i dobrze...

Ale kiedy wkrypt wygląda tak:
  1. <?php
  2. $text=[
  3. array_map(function ($var) {
  4. echo "<br />", "\n",'"' .$var['ilosc'], "||", $var['opis']. '"',",";
  5. }, $arr)
  6. ];
  7.  
  8.  
  9. $sum = [];
  10. foreach($text as $row)
  11. {
  12. list($value,$name) = explode("||", $row);
  13.  
  14. if(!isset($sum[$name])){
  15. $sum[$name] = 0;
  16. }
  17.  
  18. $sum[$name] += $value;
  19. }
  20. var_dump($sum);
  21. ?>

skrypt już nie działa pomimo tego, że
  1. array_map(function ($var) {
  2. echo "<br />", "\n",'"' .$var['ilosc'], "||", $var['opis']. '"',",";
  3. }, $arr);
daję identyczną wartość co:
  1. "1||Kurczak Kung Pao",
  2. "1||Kurczak Kung Pao",
  3. "1||Wołowina w czerwonym curry",
  4. "1||Wołowina w czerwonym curry",

I wyświetla taki błąd:
  1. Warning: explode() expects parameter 2 to be string, array given in

Proszę o pomoc, co robię źle i jak to naprawić?
Pozdrawiam

Ten post edytował misteroous 21.11.2019, 04:06:00
Go to the top of the page
+Quote Post
Lord
post 21.11.2019, 08:17:22
Post #3





Grupa: Zarejestrowani
Postów: 239
Pomógł: 32
Dołączył: 10.03.2004

Ostrzeżenie: (10%)
X----


Cytat(misteroous @ 21.11.2019, 06:03:51 ) *
  1. <?php
  2. $text=[
  3. array_map(function ($var) {
  4. echo "<br />", "\n",'"' .$var['ilosc'], "||", $var['opis']. '"',",";
  5. }, $arr)
  6. ];


Cytat(misteroous @ 21.11.2019, 06:03:51 ) *
  1. <?php
  2. $text=[
  3. array_map(function ($var) {
  4. return "<br />", "\n",'"' .$var['ilosc'], "||", $var['opis']. '"',",";
  5. }, $arr)
  6. ];

Go to the top of the page
+Quote Post

Posty w temacie
- misteroous   [PHP]Sumowanie produktów w koszyku   16.11.2019, 14:21:18
- - Tomplus   Chcesz liczbę unikalnych produktów w koszyku? To ...   16.11.2019, 16:59:10
- - misteroous   Tylko, że gdy dodam dwa razy produkt po 1 to wyświ...   16.11.2019, 17:04:58
- - Tomplus   To zamiast $akcesoria[$k] używaj $a...   16.11.2019, 17:21:58
- - misteroous   Niestety nie - wszystko odbywa się w php. Dziękuje...   16.11.2019, 19:36:36
- - Tomplus   Jakbyś podał jeszcze przykładową zawartość $_...   16.11.2019, 20:24:52
- - misteroous   Masz rację zmienna $ksiazki nie jest potrzebn...   18.11.2019, 15:53:41
- - Tomplus   Teraz patrząc po Twoim kodzie to nie potrzebna jes...   18.11.2019, 21:45:23
- - misteroous   No dobrze udało mi się to zrobić w taki sposób, że...   21.11.2019, 04:03:51
|- - Lord   Cytat(misteroous @ 21.11.2019, 06:03...   21.11.2019, 08:17:22
- - Tomplus   Przemyśl czy jest sens tworzyć treści w postaci: I...   21.11.2019, 09:01:53
- - dublinka   [PHP] pobierz, plaintext $tablica = array('Jan...   21.11.2019, 10:20:46
- - misteroous   Dziękuję wszystkim za zainteresowanie. @Lord prób...   21.11.2019, 12:49:45
|- - Lord   Cytat(misteroous @ 21.11.2019, 14:49...   21.11.2019, 15:14:52
- - misteroous   Dobrze, poprawiłem to tak: [PHP] pobierz, plaintex...   21.11.2019, 15:25:29
- - nospor   Po grzyba tworzysz tablice w tablicy? nie $t...   21.11.2019, 15:30:01
- - misteroous   @nospor Kiedy robię tak jak napisałeś, otrzymuje: ...   21.11.2019, 15:35:02
- - nospor   Ja napisalem, caly ten kod jest do 4 liter - bez o...   21.11.2019, 15:37:25
- - prz3kus   wklej kod co Ty tam robisz teraz   21.11.2019, 15:38:38
- - misteroous   Nie obrażam się, napisałem, że jestem początkujący...   21.11.2019, 15:47:00
- - nospor   czy w tablicy $ksiazki jest w ogole jakis jej...   21.11.2019, 16:02:09
- - misteroous   A dokładnie o jaki identyfikator ci chodzi i jak m...   21.11.2019, 16:32:29
- - nospor   Bo teoretycznie opis moze byc taki sam dla roznych...   21.11.2019, 16:37:13
- - misteroous   U mnie opis jest unikalny dla każdego produktu wię...   21.11.2019, 16:51:24
- - nospor   To ze ktos nie odpisuje, nie znaczy ze nie ma pomy...   22.11.2019, 11:41:25
- - Tomplus   IDENTYFIKATOR - w skrócie `id` - zwykle un...   22.11.2019, 14:02:14
- - misteroous   Dziękuję ci nospor Skrypt działa temat można zamk...   24.11.2019, 17:54:41


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 10:47