возник такой вопрос - как можно передать в запрос несколько параметров на выборку если заранее этих параметров не знаешь?
подробнее - нужно сделать фильтры для товаров. для разных категорий разные фильтры. отбирать нужно по нескольким фильтрам одновременно - как сделать чтобы запрос каким то универсальным, что ли, был - обрабатывать как один так и несколько параметров
Спустя 8 минут, 49 секунд (5.06.2010 - 21:35) Gabriel написал(а):
$condition = array();
if ( !empty( $filter1 ) ) $condition[] = "field1 = '".$filter1."'";
if ( !empty( $filter2 ) ) $condition[] = "field2 = '".$filter2."'";
$query = "SELECT * FROM table ";
$cond = "WHERE ".implode(' AND ', $condition )."";
mysql_query( $query.$cond );
?
Спустя 4 минуты (5.06.2010 - 21:39) dimonise написал(а):
в том то и дело что я не знаю сколько у меня будет $filter !
Спустя 3 минуты, 26 секунд (5.06.2010 - 21:43) Gabriel написал(а):
как незнаеш? 100% знаеш их максимальное кл-во.
Спустя 6 минут, 57 секунд (5.06.2010 - 21:50) dimonise написал(а):
да. с количеством разобрался. только вот ошибку выдает мой запрос с имплодом -
Parse error: syntax error, unexpected T_STRING in /var/www/virtual/housemade.com.ua/htdocs/view_post.php on line 549
Спустя 17 минут, 58 секунд (5.06.2010 - 22:08) dimonise написал(а):
блин. не работает.
в чем здесь затык?
ошибка -
в чем здесь затык?
######################################################## это выбор фильтров ##########################################
if(isset($o_uts))
{
echo "<table border='0' class='product'>
<form action='sravny.php' method='post' name='MainForm'><tr>
<td colspan='3' class='desc'>Выбор моделей для сравнения <input type='submit' value=' сравнить '>
</td>
</tr>";
$pod_val = array();
$i=0;
for ($i=0;$i<count($o_uts);$i++){
$pod_v = mysql_query("SELECT * FROM pod_value WHERE value LIKE". implode(' AND ','$o_uts[$i]').",$db); // выбор значений фильтров из базы в зависимости от значений сессий
while ($pod_va = mysql_fetch_assoc($pod_v))
{
$pod_val = $pod_va['prod_id']; // дает ошибку в этой строке
$result5 = mysql_query("SELECT * FROM tovar WHERE id = $pod_val",$db); // выбор товара в соответствии с фильтрами
и так далее .....
ошибка -
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/virtual/housemade.com.ua/htdocs/view_post.php on line 555
Спустя 25 минут, 34 секунды (5.06.2010 - 22:33) vagrand написал(а):
mysql_query("SELECT * FROM pod_value WHERE value LIKE". implode(' AND ','$o_uts[$i]').",$db)
замени на
mysql_query("SELECT * FROM pod_value WHERE value LIKE". implode(' AND ','$o_uts[$i]'),$db)
замени на
mysql_query("SELECT * FROM pod_value WHERE value LIKE". implode(' AND ','$o_uts[$i]'),$db)
Спустя 5 минут, 46 секунд (5.06.2010 - 22:39) dimonise написал(а):
вот что теперь выдает -
Warning: implode() [function.implode]: Invalid arguments passed in /var/www/virtual/housemade.com.ua/htdocs/view_post.php on line 548
Спустя 1 час, 14 минут, 28 секунд (5.06.2010 - 23:53) Ice написал(а):
Цитата |
$pod_val = $pod_va['prod_id']; // дает ошибку в этой строке |
Ну, $pod_val - массив жеж. А как мы приваиваем массиву значения? Ай-яйяй Вы со мной согласны?
$pod_val[] = $pod_va['prod_id'];