Koszyk na zakupy - dodanie funkcji mnożenia danego artykułu

0

Witam
Mam taki problem, chciałem do swojego koszyka dodać możliwość mnożenia danego artykułu przez pewną ilość podana przez użytkownika i teraz mi nie działa. Nie wiem dlaczego ale nie chce mi przechodzić ze strony z towarami na strone z koszykiem. Czy mógłby ktoś zerknąć i coś podpowiedzieć?

<?php
session_start();
if(!isset($_SESSION['koszyk']))
{
$_SESSION['koszyk']=array();
}

if(isSet($_GET['powierzchnia'])){
  $_SESSION['koszyk_powierzchnia'][$_GET['kup']]=$_GET['powierzchnia'];
}




if (isset($_GET['kup']))
{
// jezeli dodajemy jaki¶ produkt do koszyka
  $_SESSION['koszyk'][] = $_GET['kup'];
	
// przekierowanie z uwzględnieniem nie działaj±cych ciasteczek
header('location: '.$_SERVER['PHP_SELF']. '?' .SID);
exit();
}


?>


	
<b>Twoj koszyk zawiera: 
<?php print count($_SESSION['koszyk']); ?> produktow.</b>
<p><a href="koszyk.php">Zobacz koszyk</a></p>

<?php //definicja tablic z towarami oraz cenami

$lacz = mysql_connect('localhost','root','444') or
die('Padl serwer');
$lacz = mysql_select_db('stronaphp') or die('Padla baza');

$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug ") or die('Błąd zapytania');

?>
<table border="1">
 <thead>
  <tr>
	  <th>ID</th>
	  <th>Opis towaru</th>
		<th>cena</th>
	</tr>
 </thead>
<tbody>

<?php //wyswietlamy towary z tablicy

$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;



$towary = array();
$ceny = array();

while ($row = mysql_fetch_array($wynik))
{
$towary[]=$row['Nazwa_uslugi'];
    $ceny[]=$row['Cena_za_metr'];
		
		$ilosc=1;
		$ilosc=$_SESSION['powierzchnia'];

		print '<tr><td>'.$row['ID'].'</td>';
print '<td>'.$row['Nazwa_uslugi'].'</td>';
print '<td>'.$row['Cena_za_metr'].'</td>';
 


echo "<td>
<form method=\"get\" action=".$_SERVER['PHP_SELF']."\">
<input type=\"hidden\" name=\"kup\" value={$row['ID']}>
<input type=\"text\" name=\"powierzchnia\" value=\"$ilosc\">
<input type=\"submit\" value=\"Kup produkt\">
</form>
<td>";




}
?>
 </tbody>
</table>
</body>
</html>
	
		
	  </body>
	</html>

i kod koszyka

<?php
session_start();

/* inicjuje zmienna */
if(empty($_SESSION['powierzchnia'])){
  $_SESSION['powierzchnia'] = 0;
}
if(isset($_GET['powierzchnia'])){
  /* przetwarza dane formularza powierzchni */
  $_SESSION['koszyk_powierzchnia'][$_GET['kup']]=$_GET['powierzchnia'];
}


if (!isset($_SESSION['koszyk'])) {
  $_SESSION['koszyk'] = array();
}



if (isset($_GET['reset']))  //chcemy wyczy¶cić koszyk
{
      unset($_SESSION['koszyk']);
			header('location: '. $_SERVER['PHP_SELF']. '?'. SID);
			exit();
}
?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Firma budowlana </title>
  </head>
  <body>
<h1>Twoj koszyk z zakupami</h1>





<?php

   // definicja tablic z towarami oraz cenami


$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;


$q = mysql_connect('localhost','root','444') or
die('Padl serwer');
$q = mysql_select_db('stronaphp') or die('Padla baza');


$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug") 
or die('Błąd zapytania'); 



$towary = array();
$ceny = array();
while ($row = mysql_fetch_array($wynik))
{
    $towary[$row['ID']]=$row['Nazwa_uslugi'];
    $ceny[$row['ID']]=$row['Cena_za_metr'];
}
?>

<table border="1">
  </thead>     
			 <tr>
				   
				   <th>Nazwa usługi</th>
					 <th>Cena za metr</th>
				</tr>
		</thead>
	<tbody>



<?php
$suma = 0;
$ilosc = 1;
if($_SESSION['koszyk_powierzchnia']>0){
  $ilosc = $_SESSION['koszyk_powierzchnia'];
}
for ($i=0;$i < count($_SESSION['koszyk']); $i++)
{
		echo '<tr>';
		echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
		echo '<td align="right">';
		echo $ilosc.' m<sup>2</sup> x '.number_format (($ceny[$_SESSION['koszyk'][$i]])* $ilosc,2);
		echo ' zlotych</td></tr>';
		$suma = $suma + ($ceny[$_SESSION['koszyk'][$i]]);
}
?>


</tbody>
 <tfoot>
  <tr>
	  <th align="right">Naleznosc: </th><br>
		<th align="right"><?php echo number_format($suma,2); ?> zlotych.</th>
	</tr>
 </tfoot>
</table>

<p><a href="towary.php">Kupuj dalej</a> lub też: <a href="<?php echo $_SERVER['PHP_SELF']; ?>?reset=1">Wyczysc swoj koszyk</a></p>
</body>
</html>
1

Generalnie to najlepiej wyrzuć ten kod.
Rozdziel logikę aplikacji od widoku, poczytaj o MVC.

0

Czemu wyrzucić? Do tej pory wszystko pięknie działało tylko teraz coś nie chce działać po wprowadzeniu tych pól do wpisywania ilości

2

Ponieważ to wszystko jest jednym, wielkim, nieczytelnym spaghetti code i dzieje się tutaj jednocześnie i wszystko, i nic.

0

To może inaczej zapytam, jest jakiś sposób abym mógł oddzielnie dla każdej linii w koszyku wpisać ilość i to zatwierdzić? Chodzi mi o tą część kodu przede wszystkim:

 for ($i=0;$i < count($_SESSION['koszyk']); $i++)
{
        echo '<tr>';
        echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
        echo '<td align="right">';
        echo $ilosc.' m<sup>2</sup> x '.number_format (($ceny[$_SESSION['koszyk'][$i]])* $ilosc,2);
        echo ' zlotych</td></tr>';
        $suma = $suma + ($ceny[$_SESSION['koszyk'][$i]]);
}

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