MENU ВХОД РЕГИСТРАЦИЯ
Форум
>
Базы данных
>
PHP и базы данных
>
Переменные в запросе SELECT
Grig24
Grig24
Гость
составляю следующий запрос
try {
$conn = new PDO(«mysql:host=$localhost;dbname=ххх», 'ххх', 'ххх');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare («SELECT * FROM `price` WHERE `marka` = :marka»);
// передаем значения в запрос и выполняем его
$stmt->execute([':marka' => $marka1]);
или же по старинке
$sql = mysqli_query($connect, «SELECT * from price WHERE `marka` = '$marka1'») or die ('!!!!!'. mysqli_error($connect));
результат один — если перед запросом я прописываю переменную явно,
к примеру
$marka1 = '30ХМА';
то запрос работает.
если я прописываю
$marka1 = '';
то нет.
Причем само значение присваивается, так как при коде
$marka1 = ';
echo $marka1;
он выводит
30ХМА
Такая же история, если я использую переменную в switch или if() else
В чем здесь может быть проблема? Спасибо
Плейсхолдеры в сниппетах
Версия MODX: Revolution
Комментарии (10)
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Алексей Либер 12.06.2019 09:42 #
Григорий 12.06.2019 12:13 #
$marka1 = $modx->getPlaceholder('pagetitle');
ничего не выводят. Правильный синтаксис?
и могу ли я вообще использовать плейсхолдер в сниппете?
странно, что он отображается в echo ""; но в конструкции выборки нет
Григорий 12.06.2019 10:01 #
$marka1 = $modx->getPlaceholder('pagetitle');
ничего не выводят. Правильный синтаксис?
Григорий 12.06.2019 10:05 #
$marka1 = $modx->getPlaceholder(''); в скобках pagetitle — вырезает код
Алексей Либер 12.06.2019 13:53 #
Какие такие квадратные скобки? Вы пытаетесь в сниппете использовать [ [+pagetitle? Обяъсните еще раз что вы делаете и что хотите получить в итоге?
Григорий 12.06.2019 14:21 #
Страница представляет прайс на марку стали.
Марка имеется в названии страницы, в которой выводится по шаблону чанк и сниппет.
Чтобы сделать выборку из базы, я обращаюсь по полю марка и ссоответственно сравниваю с названием страницы, т.е. с плейсхолдером.
Я где-то в глубине души понимаю, что это неправильно, но почему тогда приравненная к плейсхолдеру переменная отображает значение…
Спасибо
Алексей Либер 12.06.2019 14:42 #
В вашем случае можно пойти двумя путями.
1. В сниппете:
2. В чанке/шаблоне
[ [! SnippetName? &parem1=`[ [* pagetitle ] ]` ] ]
В таком случае в сниппете SnippetName переменная $param1 будет содержать значение, которое вы ему передаете.
Григорий 12.06.2019 14:51 #
Алексей Либер 12.06.2019 14:54 #
Григорий 12.06.2019 23:10 #
[ [ SnippetName? &parem1=`[ [* pagetitle ] ]` ] ]
только она почему-то у меня работает именно вот так без! вначале, в кешированном виде, когда ставлю! — выводится просто строка как текст.
Но главное работает, спасибо еще раз!