Задать вопрос
@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 из базы?
форычом пробовал чет тоже не вышло или я не так что то делал..
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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']]);
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽