@green300

Как вывести одиночное значение из массива?

$stmt = $pdo->prepare("SELECT * FROM category WHERE 'id'=:id AND 'name'=:name");
			$stmt->execute(['id'=>$id, 'name'=>$name]);
			$res = $stmt->fetch(PDO::FETCH_ASSOC);

			if ($id = $_GET["cat_id"]) {
				 
				echo $res[$id];
			}

дело в том что нужно чтоб из гета айдишник категории подставлялся к такому же айдишнику в базе..
ну например в строке поиска ?cat_id=17 и как мне сделать чтоб выводился id 17 из базы?
форычом пробовал чет тоже не вышло или я не так что то делал..
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 3
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
if ($id = $_GET["cat_id"]) // здесь ошибка! 
// Должно быть 
if ($id == $_GET["cat_id"])
Ответ написан
Комментировать
@rPman
Делай проверки по успешному выполнению каждого вызываемого метода, в отладку или логи выводи что там в $res лежит, что передашь в параметрах запроса, вдруг там пробелы, каким-нибудь print_r или var_dump или json_encode.

Настрой отладчик, сэкономили много времени
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
$stmt = $pdo->prepare("SELECT * FROM category WHERE 'id'=:id AND 'name'=:name");
      $stmt->execute(['id'=>$id, 'name'=>$name]); //откуда эти ид и нэйм? И зачем нэйм если есть ид?
      $res = $stmt->fetch(PDO::FETCH_ASSOC);
      if ($id = $_GET["cat_id"]) { //опять, что за ид и почему мы его сравниваем с гет переменной?
        echo $res[$id];
      }

Похоже что вы пытаетесь выбрать все категории, а потом найти среди них нужную... При этом ни синтаксиса, ни логики построения запросов вы не узнавали...

массив гет я как раз не хотел в pdo запихивать..не знаю чет мне кажется опасно это
Вы запихиваете не в pdo, а в prepared statements, так что безопасно. Опять же - хорошо что используете и попался толковый пример, плохо что не понимаете зачем это и как работает. В итоге код должен быть именно как написано у SagePtr
$stmt = $pdo->prepare("SELECT * FROM category WHERE `id`=:id");
$stmt->execute(['id'=>$_GET['cat_id']]);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы