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

Реферальная программа Мегаплана

Партнерская программа Kredov

Диапазон данных

#1 Снежа

Снежа
  • Пользователь
  • 15 сообщений
  • Репутация: 0
0

Отправлено 16 Июль 2009 - 11:26

Прочитав уроки академии Шаг я наткнулась на "диапазоны" и у меня возник вопрос к следующему фрагменту кода:
Select Name, Pages From Books Where Pages Between 200 And 600;
Здесь мы выбираем имя и кол-во страниц книг с диапазоном от 200 до 600 страниц, но если это будут переменные и там ничего не введут - как сделать так, чтоб тогда диапазон не указывался?

 

 

  • 0

#2 FordogeN

FordogeN
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 16 Июль 2009 - 11:31

ээ... нифига себе)
ну я думаю нужно в ПХП предварительно создать переменные с минимальным и максимальным значением, которые подргужаются еси параметры не указаны
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#3 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 16 Июль 2009 - 11:32

Если на PHP пишешь, то проверить наличие переменных, и если они существуют добавить в конец запроса "Where Pages Between 200 And 600". Т.е.
$sql = "Select Name, Pages From Books";
if (!empty($from) && !empty($to))
{
  $sql .= " Where Pages Between 200 And 600";
}

FordogeN, в твоем случае нельзя будет вывести все записи :)
  • 0

#4 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 16 Июль 2009 - 11:33

<?php
if(isset($_POST['nachalo']) && isset($_POST['konec'])){
$sql = "Select Name, Pages From Books Where Pages Between ".$_POST['nachalo']." And ".$_POST['konec'];
}
else {
$sql = "Select Name, Pages From Books";
}
$query = mysql_query($sql) or die('ошибка');
...

ну у v1x'а лучше код))
  • 0

#5 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 16 Июль 2009 - 11:34

Евгений, Много букф :)


  • 0

#6 Снежа

Снежа
    Topic Starter
  • Пользователь
  • 15 сообщений
  • Репутация: 0

Отправлено 16 Июль 2009 - 11:46

v1ex, Не совсем понимаю как это использовать в таком коде.

if(isset($_GET['name']))
{
if(($name = checkSearch($_GET['name'])) !== false)
{
$sql = mysql_query("Select Name, Pages From Books Where Pages Between 200 And 600;");
if(mysql_num_rows($sql) == 0)
{
echo "По вашему запросу ничего не найдено!";
} else {
while($array = mysql_fetch_array($sql))
{
// Вывод результатов
}
}
}
}

Вот так, что ли?
if(isset($_GET['name']))
{
if(($name = checkSearch($_GET['name'])) !== false)
{
$query = "Select Name, Pages From Books";
if (!empty($from) && !empty($to))
{
$query += " Where Pages Between 200 And 600";
}

$sql = mysql_query("$query;");
if(mysql_num_rows($sql) == 0)
{
echo "По вашему запросу ничего не найдено!";
} else {
while($array = mysql_fetch_array($sql))
{
// Вывод результатов
}
}
}
}

  • 0

#7 FordogeN

FordogeN
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 16 Июль 2009 - 12:00

v1ex, я полагаю нужно так переменные проставить
$sql = "Select Name, Pages From Books";
if (!empty($from) && !empty($to))
{
  $sql += " Where Pages Between $from And $to";
}
И как написала Снежа - $sql это переменная в которой хранится запрос (в ее случае $query). В общем эту переменную нужно вставить как обычный SQL запрос?
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#8 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 16 Июль 2009 - 12:01

FordogeN, ой, да :) Переменные забыл вставить :)
  • 0

#9 FordogeN

FordogeN
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

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

С кем не бывает. Вечерком надо будет код за тестить.
Будет хорошим дополнением к поиску по интернет-магазину :)


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#10 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 20 Июль 2009 - 22:33

v1ex, Поизвращаемся над кодом
$sql = "Select Name, Pages From Books";
if (!empty($from) && !empty($to))
{
  $sql .= " Where Pages Between 200 And 600";
}

думаю так можно написать:
$sql = "SELECT Name, Pages FROM Books";
$sql .= isset($from, $to) ? " WHERE Pages BETWEEN 200 and 600" : "";

или так:
$sql = "SELECT Name, Pages FROM Books";
if(isset($from, $to)) $sql .= " WHERE Pages BETWEEN 200 and 600";

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru