Skrypt zliczający ilość wystąpień w pętli foreach

0

Hej ma problem otóż mamy koszyk w sklepie internetowym

<?php echo"+"; $minus = "-"; $clear = "Usuń"; echo"

Nr ref.

$oem$numer_kat$cena_netto PLN$quantity$plus $minus$clear"; } echo"</table>"; ?>

Potrzebuję pomocy w obliczaniu wystąpień produktów w koszyku. Tak aby w nagłówku sklepu można było wyświetlać ilość sztuk dodanych do koszyka.

0

Stwórz funkcje do zwracania ilosci rzeczy w koszyku, najlepiej tam gdzie stworzona jest funkcja getProducts()

function itemsInCart(){
 $inCart = $this->getProducts();
 $count = 0;
 foreach ($inCart as $product){
  $count ++;
 }
return $count;
}

i wypisz wynik funkcji w nagłówku np:
echo $cart->itemsInCart();

0

Ta opcja wyrzuca błąd

Fatal error: Call to a member function getProducts() on null

0

php znam podstawy, ale wygląda na to, że $this jest nullem

Pokaż jak wywołujesz metodę getProducts()

0
  public function getProducts(){
	  global $pdo, $session;
	  
	$stmt = $pdo->prepare('SELECT s.id, p.cena_netto, s.quantity, p.numer_kat, p.oem, p.nazwa, p.id as pid FROM sessioncart s LEFT OUTER JOIN produkty p ON (s.id_produktu = p.id) WHERE s.session_id = :sid');
	$stmt->bindValue(':sid', $session->getSessionId(), PDO::PARAM_STR);
	$stmt->execute();
	
	$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
	
	return $result;
  }
0

Usuń to "$this->" z mojej funkcji i powinno działać.

0

No niestety nie działa. zastanawiam się czy nie wkleić kodu w miejscu gdzie jest wyświetlana pętla w koszyku

0

A tak nie działa.

$i = 0;
foreach ($inCart as $product){

   $productCartId = $product['id'];
   $cena_netto = $product['cena_netto'];
   $quantity = $product['quantity'];
   $oem = $product['oem'];
   $numer_kat = $product['numer_kat'];
   $nazwa = $product['nazwa'];
   $total = $quantity * $cena_netto;
   $id = $product['pid'];
   $suma+= $total;
   $total = number_format($total, 2);

   $plus = "<a href='dodaj.php?id=$id'>+</a>";
   $minus = "<a href='odejmij.php?id=$id'>-</a>";
   $clear = "<a href='usun.php?id=$id' style='color:#bb5e00;'>Usuń</a>";

    echo"<tr><td><p style='background-color:#3B5998;'>Nr ref.</p> $oem</td><td>$numer_kat</td><td style='text-align:center;'>$cena_netto PLN</td><td style='text-align:center;'>$quantity</td><td style='text-align:center;'>$plus $minus</td><td style='text-align:center;'>$clear</td></tr>";
$i++;
}
echo"</table>";
?>
0

Co to $i ma za zadanie?? Nie będzie działać

0

A jak to wyświetlić?

0

Nic muszę włączyć mózg bo się zepsuł chyba

0
echo count($inCart);

I całą tablicę z produktami w koszyku masz policzoną.
PS. Używaj angielskich nazw, bo masz to dosyć pomieszane z polskimi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1