Перейти к содержимому


Операция по выборку фильтра


Сообщений в теме: 6

#1 kaganat

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений

Отправлено 02 Июль 2015 - 08:35

Здравствуйте.
Пожалуйста, я в чем ошибся, что ниже приведенный код не работает, т.е. при выборе периода в таблице пусто.

// Здесь подготовливаем данные для вывода в отчете
if ($_REQUEST['period']=='280')
{
reset_filters(280);
if ($_REQUEST['period']) set_filter(230, "=", $period);
header("Location: ".$config["site_root"]."/fields.php?table=280");
}
sqlQuery = "SELECT *,sum(f250) as pros, FROM ".DATA_TABLE."280 where status=0 and f230='".$period."'"
$result = sql_query($sqlQuery);
while ($row = sql_fetch_array($result))
$lines[] = $row;
}

$smarty->assign("lines", $lines);

//Отображение:
<span class="input_element"> Выберите пероид:
<select name="period">
<option value="январьг" {if $period== 'январь'}selected{/if}>январь</option>
<option value="Февраль" {if $period== 'февраль'}selected{/if}> февраль</option>
</select>
</span>

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Июль 2015 - 09:29

А в поле f230 что хранится? Месяцы "январь", "февраль" и т.д. или даты?

#3 kaganat

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений

Отправлено 02 Июль 2015 - 10:12

В поле f230 хранится список названии месяцев (январь, февраль и т.д.)

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Июль 2015 - 10:49

Тогда все правильно по сути. Правда у вас в коде полно синтаксических ошибок, например нет точки с запятой после строки запроса и открывающей фигурной скобки после строки с while

Да, и еще переменная $period нигде не определена. По идее должно быть $period = $_REQUEST['period']; Скорее всего из-за этого пустой отчет, т.к. период пустой.

#5 kaganat

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений

Отправлено 02 Июль 2015 - 12:37

Спс, теперь выводит данные только за январь:

if ($_REQUEST['period']) $period= $_REQUEST['period'];
else $period = 'январь';
if ($_REQUEST['period']=='280')
{
reset_filters(280);
if ($_REQUEST['period']) set_filter(230, "=", $period);
header("Location: ".$config["site_root"]."/fields.php?table=280");
}
sqlQuery = "SELECT *,sum(f250) as pros, FROM ".DATA_TABLE."280 where status=0 and f230='".$period."'";
$result = sql_query($sqlQuery);
while ($row = sql_fetch_array($result))
{
$lines[] = $row;
}

#6 kaganat

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений

Отправлено 02 Июль 2015 - 12:42

Если конечно установит выбор на февраль, все ровно выводить данные за январь.

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Июль 2015 - 16:04

А вы проверьте, что у вас $_REQUEST возвращает. Судя по тому что вы пишете, она не дает то что нужно и в $_REQUEST['period'] пусто, поэтому срабатывает else $period = 'январь';





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных