Есть таблица товаров, есть активные товары и не активные (за это отвечает один из столбцов таблицы).
Мне необходимо для каждого товара (для их карты товара) выбрать 2 активных товара стоящих перед текущим товаром и 2 - стоящих после текущего товара.
Как это можно сделать?
Моя реализация меня совершенно не устраивает.
Вот она:
function get_linksCube($mag,$tov){
$tovarr = '';
for($i=-15;$i<=15;$i++){
if(!empty($tovarr)) $tovarr.=',';
$tovarr.= $tov+$i;
}
$sql = mysql_query("select t.kodt,t.nasv,t.alias,t.rubr,(select cena from cenimag c where c.kodt = t.kodt and c.kodmag=$mag) as cena FROM `tovar` t WHERE t.kodt in($tovarr) and actvtmp=1");
$arr = array();
while($row = mysql_fetch_assoc($sql))
$arr[] = $row;
$arrkey = array();
foreach ($arr as $key => $value) {
if($value['kodt'] == $tov){
if(isset($arr[$key-2]))
$arrkey[] = $arr[$key-2];
if(isset($arr[$key-1]))
$arrkey[] = $arr[$key-1];
if(isset($arr[$key+1]))
$arrkey[] = $arr[$key+1];
if(isset($arr[$key+2]))
$arrkey[] = $arr[$key+2];
}
}
return $arrkey;
}