Как выводить данные из базы с id 1 при запросе ?id=1?

Здравствуйте! Делаю каталог товаров, нужно, чтобы по ссылке site.ru/catalog?id=1 выводилась карточка товара с id 1. Я так понимаю, что это делается при подключении к базе:
<?php
	$dbh = new PDO('mysql:dbname=root;host=localhost', 'bd', 'password');
	 
	$sth = $dbh->prepare("SELECT * FROM `catalog` ORDER BY `date_add` DESC");
	$sth->execute();
	$items = $sth->fetchAll(PDO::FETCH_ASSOC);
	 
	if (!empty($items)) {
	?>


Пробовал так, но не работает:
$sth = $dbh->prepare("SELECT * FROM `catalog` ORDER BY `date_add` DESC WHERE `id`=".intval($_GET['id'])."");
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
$sth = $dbh->prepare("SELECT * FROM `catalog` WHERE `id` = ? ORDER BY `date_add` DESC");
$sth->execute([intval($_GET['id'])]);

Или для читабельности кода, лучше так:
$id = intval($_GET['id']);

$sth = $dbh->prepare("SELECT * FROM `catalog` WHERE `id` = :id ORDER BY `date_add` DESC");
$sth->bindParam('id', $id, PDO::PARAM_INT);
$sth->execute();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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