Chernichko
@Chernichko
Учусь.

Как выбрать данные из базы данных?

Есть таблица товаров, есть активные товары и не активные (за это отвечает один из столбцов таблицы).

Мне необходимо для каждого товара (для их карты товара) выбрать 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;    
    }
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@IceJOKER
Web/Android developer
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы