Проблема в том что например после выбора параметра из выпадающего списка,
количество позиций уменьшается, т.к. накладывается условие where, но после выбора сортировки это условие слетает.
Как исправить, чтобы после того как выбрали элемент из выпадающего списка, а затем после сортировки, выбранный элемент выводился?
//здесь формирую список размеров
$size=mysql_query("SELECT S.`ID_SIZE`
,concat(S.`size_l`,'x',S.`size_w`,' см') 'size'
FROM `SIZE` S
WHERE S.`ID_CATEGORY`=".(int)$c.
" ORDER BY S.`size_l`"
,$db);
//здесь эти значения загоняю в выпадающий список. Который находится в форме для передачи выбранного значения
if(mysql_num_rows($size))
{
$select="<form name='choise_size' method='post' action='/item/category/item_1.php?c=".(int)$c.'&sort='.$sort."'>
<select name='choise'>
<option value='0'>Все размеры</option>";
while($row_size=mysql_fetch_assoc($size))
{
// условие чтобы после обновления показывался выбранный элемент
if ( isset($_POST['choise'])&& $_POST['choise']==$row_size['ID_SIZE'] ) {$selected='selected';} else {$selected='';}
$select.="<option ".$selected." value=".$row_size['ID_SIZE'].">".$row_size['size']."</option>";
}
$select.="<input type='submit' value='OK'></input>
</form>
</select>";
echo($select);
}
else
{echo('');}
Следующий код делает сортировку. Точнее переменной sort задаю значение
desc или asc, которые отправляю в select для order by
Вот здесь и не знаю как отправить значения $_POST['choise']
<a href='/item/category/item_1.php?c=<?php echo($c).'&'.sort.'=desc' ?>'>Убыв. </a>
<a href='/item/category/item_1.php?c=<?php echo($c).'&'.sort.'=asc' ?>'>Возр. </a>
В этом коде идет выборка позиций. Здесь как раз нужны значения из выпадающего списка для фильтрации данных и значение для сортировки
// условие для where likz фильтрации
if ( isset($_POST['choise'])&& $_POST['choise']<>0 ) {$where=' and S.`ID_SIZE`='.$_POST['choise'];} else {$where='';}
$goods=mysql_query("SELECT G.`ID_GOODS`
,N.`name`
,G.`price`
FROM `GOODS` G
LEFT JOIN `NAME` N on (N.`ID_NAME`=G.`ID_NAME`)
LEFT JOIN `SIZE` S on (S.`ID_SIZE`=G.`ID_SIZE`)
WHERE G.ID_CATEGORY=".(int)$c.$where.
" ORDER BY G.`price` ".$sort
,$db);