Поменять значение вывода

Mishan1192

Новичок
Добрый вечер. Есть вывод вида:
if(!empty($check_brand)) $query_brand = " AND brand IN($check_brand)";

Работает только с цифрами, что нужно изменить , что бы работало так же со словами?
 

Absinthe

жожо
Нужно воспользоваться абстракцией над запросами в БД, которая позволяет подставлять плейсхолдеры из строковых массивов.

Например Illuminate Database или Doctrine DBAL.
 

Mishan1192

Новичок
У меня передается буквенное значение , мне нужно его только как то принять...
 

Mishan1192

Новичок
Для меня такое сложно. Может я не правильно обьяснил, это обработка формы "поиск по параметрам" то есть ее часть, AND brand IN($check_brand) делает массив из выбранных брендов.
Может есть какое то решение типа что бы передать несколько брендов и вывести все товары с такими брендами?
например подставить значение сюда $result = mysql_query("SELECT * FROM table_products WHERE brand= '....'",$link);
 

Absinthe

жожо
У @Фанат была простая библиотека, но она вроде на mysql_ расширении, и в современных версиях PHP либо будет выбрасывать ошибку deprecated, либо работать не будет совсем (в 7.0, который выйдет на выходных).
Я думаю, он скажет точнее.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
И не надо писать мне в ПМ :confused:

Для слов есть find_in_set, но мне кажется, что ноги растут откуда-то не с того места, надо видеть задачу нормально
 

Mishan1192

Новичок
И не надо писать мне в ПМ :confused:

Для слов есть find_in_set, но мне кажется, что ноги растут откуда-то не с того места, надо видеть задачу нормально
Вот форма поиска
<form method="GET" action="search_filter.php">
<p class="nav_p">Поиск по параметрам</p>
<?php
$result = mysql_query("SELECT brand,id FROM `table_products` WHERE type='$type' GROUP BY brand",$link);
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);
do
{
echo '
<div class="child"><li><input '.$checked_brand.' type="checkbox"name="brand[]" value="'.$row["brand"].'" id="checkbrend'.$row["id"].'" /><label for="checkbrend'.$row["id"].'">'.$row["brand"].'</label></li></div>
';
}
while ($row = mysql_fetch_array($result));
}
?>
<div id="block-input-price">
<ul>
<li><p>от</p></li>
<li><input type="text" id="start-price" name="start_price" value="1000" /></li>
<li><p>до</p></li>
<li><input type="text" id="end-price" name="end_price" value="30000" /></li>
<li><p>руб</p></li>
</ul>
</div>
<div id="blocktrackbar"></div>
</div>
<input type="submit" name="submit" id="button-param-search" value="найти" />
</form>
.
.
а это в search_filter:
if ($_GET["brand"])
{
$check_brand = implode(',',$_GET["brand"]);
}
$start_price = (int)$_GET["start_price"];
$end_price = (int)$_GET["end_price"];
if(!empty($check_brand) OR !empty($end_price))
{
if(!empty($check_brand)) $query_brand = " AND brand IN($check_brand)";
if(!empty($end_price)) $query_price = " AND price BETWEEN $start_price AND $end_price";
}
$result = mysql_query("SELECT * FROM table_products where visible='1' $query_brand $query_price",$link);

if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);

do
 
Последнее редактирование:
Сверху