@valitskiydmitriy

Выборка из бд по id и get запросы?

Имеется сайт, некое подобие интернет магазина. На главной странице есть список товаров, у каждого товара свой id. Пытаюсь передать его на страницу покупки, не получается, в ручную вписываю в url ?id=2 и тоже не работает, на странице покупки такой код: (Что не так, куда копать?)

$products_id = isset($_GET['id']) ? $_GET['id'] : 0;
  $stmt = $db->prepare('SELECT * FROM rm_products WHERE id=$id' );
  $stmt->execute();

  $print = '';
     while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
      $print .= '<div class="product">';
И,Т,Д
  • Вопрос задан
  • 1870 просмотров
Пригласить эксперта
Ответы на вопрос 3
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Вам что не говорили, что переменные между апострофами PHP не видит?

$stmt = $db->prepare('SELECT * FROM rm_products WHERE id='.$id);
//Или
$stmt = $db->prepare("SELECT * FROM rm_products WHERE id=$id");
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
$products_id = isset($_GET['id']) ? $_GET['id'] : 0;
$stmt = $db->prepare('SELECT * FROM rm_products WHERE id=$id' );

Вы сохраняете id в переменную $products_id, а в запрос передаете $id.
Ну и как правильно указал Виталий Инчин, в одинарных кавычках переменная не интерполируется.
Ответ написан
Комментировать
@rsi
software engineer
На самом деле из вашего примера ничего не ясно. Попробуйте пройтись дебагером и посмотреть соответсьвет ли алгоритм логике. Если не работаете с дебагером, то то расставьте флаги на каждом этапе. вроде такого:
echo $_GET['id'];
$products_id = isset($_GET['id']) ? $_GET['id'] : 0;
echo $products_id;
echo 'SELECT * FROM rm_products WHERE id='.$id;

ну и так далее, вы увидите где ошибка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы