jest to mój pierwszy post bardzo prosił bym o pomoc.
Jest to rozwinięcie skryptu z książki php mysql kevina yanka. Nie wiem jak zrobić ograniczenie ilość dodawanych produktów, oraz by później w koszyku była jedna nazwa produktu, a zmieniała się ilość dodawanych rzeczy.

index.php
  1. <?php
  2. include $_SERVER['DOCUMENT_ROOT'] . '/includes/db1.inc.php';
  3.  
  4. $result = mysqli_query($link, 'SELECT id, produkt, ilosc, cena FROM produkt');
  5. if(!$result)
  6. {
  7. $error = 'Błąd odczytu zawartosci tabeli produkty: ' .mysqli_error($link);
  8. include 'error.html.php';
  9. exit();
  10. }
  11.  
  12. while ($row = mysqli_fetch_array($result))
  13. {
  14. $produkty[] = array('id' => $row['id'], 'text' => $row['produkt'],
  15. 'ilosc' => $row['ilosc'], 'cena' => $row['cena']);
  16. }
  17.  
  18. if (!isset($_SESSION['cart']))
  19. {
  20. $_SESSION['cart'] = array();
  21. }
  22.  
  23. if (isset($_POST['action']) and $_POST['action'] == 'Kup' )
  24. {
  25. //Dodawanie produktów na koniec tablicy $_SESSION['cart']
  26.  
  27.  
  28. $_SESSION['cart'][] = $_POST['id'];
  29. header('Location: .');
  30. exit();
  31. }
  32.  
  33. if (isset($_GET['cart']))
  34. {
  35. $cart = array();
  36. $total = 0;
  37. foreach ($_SESSION['cart'] as $id)
  38. {
  39. foreach($produkty as $produkt)
  40. {
  41. if ($produkt['id'] == $id)
  42. {
  43. $cart[] = $produkt;
  44. $total += $produkt['cena'];
  45. break;
  46. }
  47. }
  48. }
  49. include 'cart.html.php';
  50. exit();
  51. }
  52.  
  53. if (isset($_POST['action']) and $_POST['action'] == 'Opróżnij koszyk')
  54. {
  55. //wyczyszczenie tablicy $_SESSION['cart']
  56. unset($_SESSION['cart']);
  57. header('Location: ?cart');
  58. exit();
  59. }
  60. include 'sklep.html.php';
  61. ?>


sklep.html.php
  1. <?php include $_SERVER['DOCUMENT_ROOT'] . '/includes/helpers.inc.php'; ?>
  2. <!DOCTYPE html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>zawartość sklepu</title>
  6. <style type="text/css">
  7. table {
  8. border-collapse: collapse;
  9. }
  10. td, th {
  11. border: 1px solid black;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <p>Twój koszyk na zapupy zawiera <?php
  17. echo count($_SESSION['cart']); ?> produkt(ów).</p>
  18. <p><a href="?cart">Sprawdź zawartość koszyka</a></p>
  19. <table border="1">
  20. <tr>
  21. <th> Opis produktu </th>
  22. <th> cena </th>
  23. <th> ilosc </th>
  24. </tr>
  25. </thead>
  26. <?php foreach($produkty as $produkt): ?>
  27. <tr>
  28. <td><?php htmlout($produkt['text']); ?></td>
  29. <td align="right">
  30. <?php echo number_format($produkt['cena'], 2); ?>
  31. </td>
  32. <td align="right"> <?php htmlout($produkt['ilosc']); ?> szt.</td>
  33. <td>
  34. <form action="" method="post">
  35. <div>
  36. <input type="hidden" name="id" value="<?php
  37. htmlout($produkt['id']); ?>" />
  38. <input type="submit" name="action" value="Kup"/>
  39. </div>
  40. </form>
  41. </td>
  42. </tr>
  43. <?php endforeach; ?>
  44. </tbody>
  45. </table>
  46. <p>Oto wszystkie ceny w urojonej walucie.</p>
  47.  
  48. </ul>
  49. </body>
  50. </html>


cart.html.php (koszyk)
  1. <?php include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/helpers.inc.php';?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  7. <title>koszyk na zakupy</title>
  8. <style type="text/css">
  9. table {
  10. border-collapse: collapse;
  11. }
  12. td, th {
  13. border: 1px solid block;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <h1>Twój koszyk na zakupy</h1>
  19. <?php if (count($cart) >0): ?>
  20. <tr>
  21. <th>Opis produktu</th>
  22. <th>Cena</th>
  23. </tr>
  24. </thead>
  25. <tr>
  26. <td>Razem: </td>
  27. <td><?php echo number_format($produkt['cena'], 2); ?></td>
  28. </tr>
  29. </tfoot>
  30. <?php foreach ($cart as $produkt): ?>
  31. <tr>
  32. <td><?php htmlout($produkt['text']); ?></td>
  33. <td>
  34. <?php echo number_format($produkt['cena'], 2); ?>
  35. </td>
  36. </tr>
  37. <?php endforeach; ?>
  38. </tbody>
  39. </table>
  40. <?php else: ?>
  41. <p>Twój koszyk jest pusty!</p>
  42. <?php endif; ?>
  43. <form action="?" method="post">
  44. <p>
  45. <a href="?">Kontynuuj zakupy</a> lub
  46. <input type="submit" name="action" value="Opróżnij koszyk"/>
  47. </p>
  48. </form>
  49. </body>
  50. </html>
  51.