Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie produktu do koszyka, nie widzi zmiennych
Forum PHP.pl > Forum > Przedszkole
Piffek
Witam, mam problem z przenoszeniem zmiennych między stronami php, mianowicie. Mogę dodać do bazy pobraną zmienną id, lecz już dodanie wszystkich zmiennych, należących do danego produktu o tym id nie dodaje. Nie wiem gdzie robię błąd.

usunkat.php
  1. <?php
  2.  
  3. $db = new PDO('mysql:host=DANE, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
  4.  
  5. $nick = $_SESSION['logowanie'];
  6.  
  7. //wyświetlamy wszystke pola z tabeli "kategoria"
  8.  
  9. $stmt=$db->query('SELECT * FROM kategoria');
  10. foreach($stmt as $row)
  11. {
  12. echo "<font color=\"#90D4B4\"><td>".$row['miejscowosc']."<br></font>";
  13. echo "<br><font color=\"#2D8C5F\"><td><b>".$row['produkt']."</b><br></td></font>";
  14. echo "<b>Cena: </b>";
  15. echo "<td>".$row['Cena']."</td><br>";
  16. echo "<td>".$row['rodzaj']."<br></td>";
  17. echo "<td>".$row['stan']."<br></td>";
  18. echo "<b>Opis: </b>";
  19. echo "<td>".$row['Opis']."<br></td>";
  20. echo "Dodany przez : ";
  21. echo "<font color=\"#C92E2E\"><td><b>".$row['nick']."</b><br></td></font color>";
  22. echo "<td>
  23. <a href=\"dodaje_produkt_do_koszyka.php?id={$row['id']}\"><b>Dodaj do koszyka</b></a>
  24. </td>";
  25. echo "<br>_______________________<br>";
  26.  
  27. }


dodaje_produkt_do_koszyka.php

  1. $db = new PDO('mysql:host=DANE, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
  2.  
  3.  
  4. $data[] = [$_get['produkt']];
  5. $sql = "INSERT INTO Koszyk(produkt) VALUES (:produkt) WHERE id=:id";
  6. $stmt=$db->prepare($sql);
  7. foreach($data as $row)
  8. {
  9. $stmt->bindParam(':id',$_GET['id'],PDO::PARAM_INT);
  10. $stmt->bindParam(':produkt',$_row['produkt'],PDO::PARAM_STR);
  11. $stmt->execute();
kapslokk
  1. INSERT INTO Koszyk(produkt) VALUES (:produkt) WHERE id=:id

To zapytanie jest niepoprawne. Do insertów nie daje się where. Poczytaj jak wyświetlać błędy, będziesz miał wszystko jasne.

$_get['produkt'] !== $_GET['produkt']

Skąd masz $_row['produkt']?
Piffek
Cytat(kapslokk @ 22.09.2016, 09:29:37 ) *
  1. INSERT INTO Koszyk(produkt) VALUES (:produkt) WHERE id=:id

To zapytanie jest niepoprawne. Do insertów nie daje się where. Poczytaj jak wyświetlać błędy, będziesz miał wszystko jasne.

$_get['produkt'] !== $_GET['produkt']

Skąd masz $_row['produkt']?

Myślałem że trzeba pobierać zmienną, którą chce się przekazać do tabeli. W dodatku że gdy wyświetlę SELECTem na tej stronie zmienne danego ID, to się pokazują bez problemu. Więc te zmienne gdzieś na tej stronie muszą być. Przykładowo:

  1. $stmt=$db->prepare('SELECT * FROM kategoria WHERE id=:id');
  2. $stmt->bindParam(':id',$_GET['id'],PDO::PARAM_STR);
  3. $stmt->execute();
  4. foreach($stmt as $row)
  5. {
  6. echo "<font color=\"#90D4B4\"><td>".$row['miejscowosc']."<br></font>";
  7. echo "<br><font color=\"#2D8C5F\"><td><b>".$row['produkt']."</b><br></td></font>";
  8. echo "<b>Cena: </b>";
  9. echo "<td>".$row['Cena']."</td><br>";
  10. echo "<td>".$row['rodzaj']."<br></td>";
  11. echo "<td>".$row['stan']."<br></td>";
  12. echo "<b>Opis: </b>";
  13. echo "<td>".$row['Opis']."<br></td>";
  14. echo "Dodany przez : ";
  15. echo "<font color=\"#C92E2E\"><td><b>".$row['nick']."</b><br></td></font color>";
  16. echo "<td>
  17. <a href=\"dodaje_produkt_do_koszyka.php?id={$row['id']}\"><b>Dodaj do koszyka</b></a>
  18. </td>";
  19. echo "<br>_______________________<br>";
  20.  
  21. }

Wyświetla wszystkie zmienne produktu o danym id.

Co do wyświetlania błędów. Zastosowałem try i catch, nic nie wyświetla.
nospor
Cytat
to się pokazują bez problemu. Więc te zmienne gdzieś na tej stronie muszą być
Tak to jest jak sie bierze za php bez przerobienia podstaw...
Jak przechodzisz do strony dodaje_produkt_do_koszyka.php to dane ze strony "wyswietl dane" juz dawno wyparowaly... Na stronie dodaje_produkt_do_koszyka.php majac ID produktu musisz te dane pobrac z bazy jeszcze raz.

Cytat
Co do wyświetlania błędów. Zastosowałem try i catch, nic nie wyświetla.

Chodzilo o bledy podstawowe a nie wyjatki.

wsadz w google: jak wlaczyc wyswietlanie bledow w php

ps: przenosze
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.