Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите как извлечь данные из MySql при отсутствии переменных?
 
 автор: sega_z   (25.04.2011 в 23:11)   письмо автору
 
 

Всем привет!

Никак не могу придумать, как извлечь данные из MySql при отсутствии одной или нескольких переменных.

Допустим есть поисковая форма с необязательными полями в которой заносятся значения переменных. Если переменная пустая (не заполнено поле в форме) то необходимо извлекать строки без учета пустой переменной и так все возможные варианты:

<?php
$tip
="куплю";
$gorod="Москва";
?>


Из базы данных необходимо извлечь строки с указанными переменными (если есть), естественно можно сделать так:

<?php
if (!empty ($tip) and !empty ($gorod))
{
$result mysql_query("SELECT * FROM tablica WHERE tip='$tip' AND gorod='$gorod'",$db);
}

if (!empty (
$tip) and empty ($gorod))
{
$result mysql_query("SELECT * FROM tablica WHERE tip='$tip'",$db);
}

if (empty (
$tip) and !empty ($gorod))
{
$result mysql_query("SELECT * FROM tablica WHERE gorod='$gorod'",$db);
}

if (empty (
$tip) and empty ($gorod))
{
$result mysql_query("SELECT * FROM tablica",$db);
}
?>


Т.е. для двух полей формы, в которых могут быть заданы, а могут быть не заданы значения переменных необходимо написать 4 условия.
А в моём реальном примере 10 полей поисковой формы которые могут быть заполнены а возможно и нет, т.е. получается необходимо написать 100 возможных вариантов условий.

Можно ли в PHP сделать скрипт как то по проще???

  Ответить  
 
 автор: cheops   (25.04.2011 в 23:27)   письмо автору
 
   для: sega_z   (25.04.2011 в 23:11)
 

Обычно поступают так
<?php
  $where 
= array();
  if(!empty(
$tip)) $where[] = "tip='$tip'";
  if(!empty(
$gorod)) $where[] = "gorod='$gorod'";
  if(!empty(
$where))
    
$query "SELECT * FROM tablica WHERE ".implode(" AND "$where);
  else
    
$query "SELECT * FROM tablica";
  
$result mysql_query($query$db);
?>

  Ответить  
 
 автор: sega_z   (26.04.2011 в 20:04)   письмо автору
 
   для: cheops   (25.04.2011 в 23:27)
 

Спасибо, большое за подсказку!!!

  Ответить  
 
 автор: sega_z   (03.05.2011 в 19:03)   письмо автору
 
   для: cheops   (25.04.2011 в 23:27)
 

Извините, но ваш скрипт не работает. Помогите найти ошибку!

Мне кажется здесь не хватает двойных ковычек, только не знаю куда их поставить:


$query = "SELECT * FROM tablica WHERE ".implode(" AND ", $where); 

  Ответить  
 
 автор: cheops   (03.05.2011 в 19:07)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:03)
 

А "не работа" в чем заключается? Выводится ли какое-то сообщение об ошибке?

  Ответить  
 
 автор: sega_z   (03.05.2011 в 19:09)   письмо автору
 
   для: cheops   (03.05.2011 в 19:07)
 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

  Ответить  
 
 автор: cheops   (03.05.2011 в 19:42)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:09)
 

Дело в том, что PHP и MySQL это разные среды, чтобы получить ошибки одной среды в другой - их необходимо запрашивать явно и всякий раз, даже если запрос статический, лучше осуществлить проверку после вызова mysql_query(), иначе совершенно не понятно, что случилось и в чем проблема
<?php
  $result 
mysql_query($query$db);
  if(!
$result) exit("Ошибка - ".mysql_error()."<br>".$query);
?>

  Ответить  
 
 автор: sega_z   (03.05.2011 в 19:48)   письмо автору
 
   для: cheops   (03.05.2011 в 19:42)
 

Ошибка -
SELECT COUNT(*) FROM doska WHERE marka='Mercedes'

  Ответить  
 
 автор: cheops   (03.05.2011 в 20:17)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:48)
 

Хм... интересно, ошибки нет, но дескриптор не возвращается. Запрос тоже нормальный, я так понимаю, выполнение его в phpMyAdmin ошибок не вызывает? Остается дескриптор $db - он точно рабочий?

  Ответить  
 
 автор: sega_z   (03.05.2011 в 20:19)   письмо автору
 
   для: cheops   (03.05.2011 в 20:17)
 

Да, рабочий!!!

  Ответить  
 
 автор: sega_z   (03.05.2011 в 19:57)   письмо автору
 
   для: cheops   (03.05.2011 в 19:42)
 

А если в массиве $where будет только одна переменная, как быть тогда?

Ведь разделитель "AND" в этом случае будет не нужен.


$query1 = "SELECT * FROM doska WHERE ".implode(" AND ", $where);

  Ответить  
 
 автор: cheops   (03.05.2011 в 20:15)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:57)
 

Он в этом случае и не появится.

  Ответить  
 
 автор: sega_z   (03.05.2011 в 20:21)   письмо автору
 
   для: cheops   (03.05.2011 в 20:15)
 

>Хм... интересно, ошибки нет, но дескриптор не возвращается. Запрос тоже нормальный, я так понимаю, выполнение его в phpMyAdmin ошибок не вызывает? Остается дескриптор $db - он точно рабочий?<

Да, дескриптор $db рабочий!

  Ответить  
 
 автор: sega_z   (03.05.2011 в 19:19)   письмо автору
 
   для: cheops   (03.05.2011 в 19:07)
 

Если это поможет, то вот весь скрипт, составленный мной на основании вашего кода:


<?php
$where 
= array();
if(!empty(
$tip)) $where[] = "tip='$tip'";
if(!empty(
$marka)) $where[] = "marka='$marka'";
if(!empty(
$model)) $where[] = "model='$model'";
if(!empty(
$dvizhok)) $where[] = "dvizhok='$dvizhok'";
if(!empty(
$year)) $where[] = "year='$year'";
if(!empty(
$probeg)) $where[] = "probeg='$probeg'";
if(!empty(
$ruly)) $where[] = "ruly='$ruly'";
if(!empty(
$korobka)) $where[] = "korobka='$korobka'";
if(!empty(
$region)) $where[] = "region='$region'";
if(!empty(
$gorod)) $where[] = "gorod='$gorod'";

//Постраничная навигация!
//Задаём число текстовых блоков на странице
$num 20;
// Извлекаем из URL текущую страницу
@$page $_GET['page'];

if(!empty(
$where))
{
$query "SELECT COUNT(*) FROM doska WHERE ".implode(" AND "$where);
}
else
{
$query "SELECT COUNT(*) FROM doska";
$result00 mysql_query($query$db);
}

$temp mysql_fetch_array($result00);
$posts $temp[0];
// Находим общее число страниц
$total = (($posts 1) / $num) + 1;
$total =  intval($total);
// Определяем начало сообщений для текущей страницы
$page intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page 0$page 1;
  if(
$page $total$page $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start $page $num $num;
// Выбираем $num сообщений начиная с номера $start
if(!empty($where))
{
$query1 "SELECT * FROM doska WHERE ".implode(" AND "$where);
}
else
{
$query1 "SELECT * FROM doska ORDER BY id DESC LIMIT $start$num";
$result mysql_query($query1$db);
}
?>


И сервер пишет, что ошибка "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in..." в строке:


$total = (($posts - 1) / $num) + 1;

  Ответить  
 
 автор: Xenos   (03.05.2011 в 19:48)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:19)
 

Ваще-то если глазками прочесть, то видно, что ВАЩЕ не в этой строчке ругается. А как минимум в
$temp = mysql_fetch_array($result00);

Ошибка значит то, что у вас НЕТ данных для фетча (м.б. result~a).
По крайней мере в коде лично я не вижу конекта к базе. А сразу ее использование. :)
Или что таблица пустая. Или запрос некорректен и возвращается 0 строк.
Данные таблицы имеют большое значение

  Ответить  
 
 автор: sega_z   (03.05.2011 в 19:51)   письмо автору
 
   для: Xenos   (03.05.2011 в 19:48)
 

Извиняюсь не прав, теперь видно что ошибка в конкретно в моём коде!!!

  Ответить  
 
 автор: sega_z   (03.05.2011 в 19:54)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:51)
 

А как в это выражение:

$query1 = "SELECT * FROM doska WHERE ".implode(" AND ", $where); 


добавить:

ORDER BY id DESC LIMIT $start, $num

  Ответить  
 
 автор: Xenos   (03.05.2011 в 20:02)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:54)
 

Брат, надо учить РНР.
:)

$query1 = "SELECT * FROM doska WHERE ".implode(" AND ", $where)." ORDER BY id DESC LIMIT $start, $num";

  Ответить  
 
 автор: sega_z   (03.05.2011 в 20:04)   письмо автору
 
   для: Xenos   (03.05.2011 в 20:02)
 

Спасибо!

А если в массиве $where будет только одна переменная, как быть тогда?

Ведь разделитель "AND" в этом случае будет не нужен и сервер выдаст ошибку.

$query1 = "SELECT * FROM doska WHERE ".implode(" AND ", $where);

  Ответить  
 
 автор: sega_z   (03.05.2011 в 20:18)   письмо автору
 
   для: Xenos   (03.05.2011 в 20:02)
 

Но почему ... выдается:

Ошибка -
SELECT COUNT(*) FROM doska WHERE tip='Продам'


У меня в таблице есть много записей с $tip="продам".

  Ответить  
 
 автор: Xenos   (03.05.2011 в 20:25)   письмо автору
 
   для: sega_z   (03.05.2011 в 20:18)
 

на мой взгля - нет подключения к базе, т.к. mysql_error = 0, если код описания ошибок испозован от cheops

  Ответить  
 
 автор: nikita2206   (03.05.2011 в 20:03)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:54)
 

так и добавить.
$query1 = "SELECT * FROM doska WHERE ".implode(" AND ", $where)." ORDER BY id DESC LIMIT $start, $num";

  Ответить  
 
 автор: cheops   (03.05.2011 в 20:31)   письмо автору
 
   для: sega_z   (03.05.2011 в 19:19)
 

А это полный код или тут намеренно исключен код установки соединения с базой данных?

  Ответить  
 
 автор: Xenos   (03.05.2011 в 20:36)   письмо автору
 
   для: cheops   (03.05.2011 в 20:31)
 

Я ему уже сказал об этом... Дважды )))

  Ответить  
 
 автор: sega_z   (03.05.2011 в 20:40)   письмо автору
 
   для: cheops   (03.05.2011 в 20:31)
 

Нет это не полный код и при отсутствии всех переменных выводятся все записи из таблицы (как и полагается)

  Ответить  
 
 автор: cheops   (03.05.2011 в 20:42)   письмо автору
 
   для: sega_z   (03.05.2011 в 20:40)
 

А не может быть такого, что вы в этом файле забыли вызывать фрагмент кода, который устанавливает соединение с базой данных, как предполагает Xenos.

  Ответить  
 
 автор: sega_z   (03.05.2011 в 20:49)   письмо автору
 
   для: cheops   (03.05.2011 в 20:42)
 

Я ещё раз повторяю - при пустой $where выводятся все записи из таблицы (как и полагается)

  Ответить  
 
 автор: cheops   (03.05.2011 в 20:51)   письмо автору
 
   для: sega_z   (03.05.2011 в 20:49)
 

Возьмите следующий запрос и выполните его в phpMyAdmin - он выполняется нормально?
SELECT COUNT(*) FROM doska WHERE tip='Продам'

  Ответить  
 
 автор: sega_z   (03.05.2011 в 20:57)   письмо автору
 
   для: cheops   (03.05.2011 в 20:51)
 

Ошибка -
SELECT COUNT(*) FROM doska WHERE tip='Продам'

  Ответить  
 
 автор: cheops   (03.05.2011 в 21:00)   письмо автору
 
   для: sega_z   (03.05.2011 в 20:57)
 

Нет, а если взять phpMyAdmin выбрать базу данных с таблицей doska и выполнить запрос в нем? Или это его ответ?

  Ответить  
 
 автор: sega_z   (03.05.2011 в 21:07)   письмо автору
 
   для: cheops   (03.05.2011 в 21:00)
 

Вот такой запрос сработал нормально и выдал все сообщения типа "Продам":


<?php
$where 
= array();
if(!empty(
$tip)) $where[] = "tip='$tip'";
if(!empty(
$marka)) $where[] = "marka='$marka'";
if(!empty(
$model)) $where[] = "model='$model'";
if(!empty(
$dvizhok)) $where[] = "dvizhok='$dvizhok'";
if(!empty(
$year)) $where[] = "year='$year'";
if(!empty(
$probeg)) $where[] = "probeg='$probeg'";
if(!empty(
$ruly)) $where[] = "ruly='$ruly'";
if(!empty(
$korobka)) $where[] = "korobka='$korobka'";
if(!empty(
$region)) $where[] = "region='$region'";
if(!empty(
$gorod)) $where[] = "gorod='$gorod'";

//Постраничная навигация!
//Задаём число текстовых блоков на странице
$num 20;
// Извлекаем из URL текущую страницу
@$page $_GET['page'];

$result00 mysql_query("SELECT COUNT(*) FROM doska WHERE tip='Продам'");

$temp mysql_fetch_array($result00);
$posts $temp[0];
// Находим общее число страниц
$total = (($posts 1) / $num) + 1;
$total =  intval($total);
// Определяем начало сообщений для текущей страницы
$page intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page 0$page 1;
  if(
$page $total$page $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start $page $num $num;
// Выбираем $num сообщений начиная с номера $start
$result mysql_query("SELECT * FROM doska WHERE tip='Продам'",$db);
?>


Все это на локальном сервере.

Мне кажется у этой строки нет закрывающей ковычки:

$query = "SELECT COUNT(*) FROM doska WHERE ".implode(" AND ", $where);

  Ответить  
 
 автор: sega_z   (03.05.2011 в 21:37)   письмо автору
 
   для: sega_z   (03.05.2011 в 21:07)
 

Куда все подевались?
Без выходных ситуаций не бывает!!!

  Ответить  
 
 автор: cheops   (03.05.2011 в 22:02)   письмо автору
 
   для: sega_z   (03.05.2011 в 21:07)
 

Проблема в чем-то другом, вот два запроса - один выводит сообщение об ошибке (т.е. формируется при помощи implode), другой, вы с успехом использовали - они идентичны.
SELECT COUNT(*) FROM doska WHERE tip='Продам'
SELECT COUNT(*) FROM doska WHERE tip='Продам'

  Ответить  
 
 автор: sega_z   (03.05.2011 в 22:06)   письмо автору
 
   для: cheops   (03.05.2011 в 22:02)
 

Но в чем... !?

  Ответить  
 
 автор: cheops   (03.05.2011 в 22:08)   письмо автору
 
   для: sega_z   (03.05.2011 в 22:06)
 

Вот этот блок
<?php
if(!empty($where)) 

$query "SELECT COUNT(*) FROM doska WHERE ".implode(" AND "$where); 

else 

$query "SELECT COUNT(*) FROM doska"
$result00 mysql_query($query$db); 
}
?>
исправьте следующим образом
<?php
if(!empty($where)) 

$query "SELECT COUNT(*) FROM doska WHERE ".implode(" AND "$where); 

else 

$query "SELECT COUNT(*) FROM doska"
}
$result00 mysql_query($query$db); 
?>

  Ответить  
 
 автор: sega_z   (03.05.2011 в 22:18)   письмо автору
 
   для: cheops   (03.05.2011 в 22:08)
 

Истину глаголите, сударь!!!

Но так же нужно сделать и в этом блоке:


if(!empty($where))
{
$query1 = "SELECT * FROM doska WHERE ".implode(" AND ", $where)." ORDER BY id DESC LIMIT $start, $num";
}
else
{
$query1 = "SELECT * FROM doska ORDER BY id DESC LIMIT $start, $num";
}
$result = mysql_query($query1, $db);


И тогда всё заработало!!!

Но по данной теме есть ещё один нюанс...

  Ответить  
 
 автор: sega_z   (03.05.2011 в 22:35)   письмо автору
 
   для: sega_z   (03.05.2011 в 22:18)
 

Хорошо, что нашли ошибку!!!
Кто ищет - тот всегда найдет!

Спасибо!
Возможно у меня будут ещё вопросы по данной теме.

  Ответить  
 
 автор: cheops   (03.05.2011 в 22:43)   письмо автору
 
   для: sega_z   (03.05.2011 в 22:35)
 

Возьмите следующее условие
gorod LIKE '%$goroda%' AND (zagolovok LIKE '%$arr[0]%' OR text_obyavl LIKE '%$arr[0]%')

и просто добавьте его в один из элементов массива $where и оно автоматически встроется в SQL-запрос.

  Ответить  
 
 автор: sega_z   (05.05.2011 в 17:00)   письмо автору
 
   для: cheops   (03.05.2011 в 22:43)
 

Подскажите, пожалуйста, как в вышеупомянутый код добавить условие, чтобы при не пустой $model извлекались все строки, где поле "model" меньше или равно $model, а остальные остаются без изменения.


<?php
$where 
= array();
if(!empty(
$tip)) $where[] = "tip='$tip'";
if(!empty(
$marka)) $where[] = "marka='$marka'";
if(!empty(
$model)) $where[] = "model='$model'";
if(!empty(
$dvizhok)) $where[] = "dvizhok='$dvizhok'";
if(!empty(
$year)) $where[] = "year='$year'";
if(!empty(
$probeg)) $where[] = "probeg='$probeg'";
if(!empty(
$ruly)) $where[] = "ruly='$ruly'";
if(!empty(
$korobka)) $where[] = "korobka='$korobka'";
if(!empty(
$region)) $where[] = "region='$region'";
if(!empty(
$gorod)) $where[] = "gorod='$gorod'";

//Постраничная навигация!
//Задаём число текстовых блоков на странице
$num 20;
// Извлекаем из URL текущую страницу
@$page $_GET['page'];

if(!empty(
$where)) 

$query "SELECT COUNT(*) FROM doska WHERE ".implode(" AND "$where); 

else 

$query "SELECT COUNT(*) FROM doska"
}
$result00 mysql_query($query$db);

$temp mysql_fetch_array($result00);
$posts $temp[0];
// Находим общее число страниц
$total = (($posts 1) / $num) + 1;
$total =  intval($total);
// Определяем начало сообщений для текущей страницы
$page intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page 0$page 1;
  if(
$page $total$page $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start $page $num $num;
// Выбираем $num сообщений начиная с номера $start
if(!empty($where))
{
$query1 "SELECT * FROM doska WHERE ".implode(" AND "$where)." ORDER BY id DESC LIMIT $start$num";
}
else
{
$query1 "SELECT * FROM doska ORDER BY id DESC LIMIT $start$num";
}
$result mysql_query($query1$db);
?>

  Ответить  
 
 автор: Lotanaen   (05.05.2011 в 17:18)   письмо автору
 
   для: sega_z   (05.05.2011 в 17:00)
 

if(!empty($model)) $where[] = "model<='$model'";

  Ответить  
 
 автор: sega_z   (05.05.2011 в 17:25)   письмо автору
 
   для: Lotanaen   (05.05.2011 в 17:18)
 

Сейчас попробую...

  Ответить  
 
 автор: sega_z   (05.05.2011 в 17:29)   письмо автору
 
   для: sega_z   (05.05.2011 в 17:25)
 

А может ли это условие работать на числах в поле varchar (250)?

  Ответить  
 
 автор: Lotanaen   (05.05.2011 в 17:33)   письмо автору
 
   для: sega_z   (05.05.2011 в 17:29)
 

условие будет работать, но цифры будут восприниматься как символы, а не числа

  Ответить  
 
 автор: sega_z   (05.05.2011 в 17:37)   письмо автору
 
   для: Lotanaen   (05.05.2011 в 17:33)
 

А вообще возможно ли сделать отбор цифр в поле varchar (250) или нет?
И удалится ли информация из поля, если я изменю тип varchar (250) на тип "int"?

  Ответить  
 
 автор: Lotanaen   (05.05.2011 в 17:56)   письмо автору
 
   для: sega_z   (05.05.2011 в 17:37)
 

для корректной смены типа я бы поступил следующим образом:
-создал в таблице новое поле типа int
-небольшой скрипт для переноса из поля varchar в поле int
-удаляем старое поле varchar
- переименовываем поле int

  Ответить  
 
 автор: sega_z   (05.05.2011 в 18:01)   письмо автору
 
   для: Lotanaen   (05.05.2011 в 17:56)
 

Блин, вот я раньше не подумал об этом!!! Теперь это действующая база данных с 7000 записей и в поле varchar (250) есть и только цифры и только буквы и буквы с цифрами.

А что будет, если просто изменить тип???
Самое главное, чтобы остались только цифры!

  Ответить  
 
 автор: sega_z   (05.05.2011 в 17:33)   письмо автору
 
   для: Lotanaen   (05.05.2011 в 17:18)
 

Никак не могу придумать, как в этот код:


$where = array();
if(!empty($tip)) $where[] = "tip='$tip'";
if(!empty($marka)) $where[] = "marka='$marka'";
if(!empty($model)) $where[] = "model='$model'";
if(!empty($dvizhok)) $where[] = "dvizhok='$dvizhok'";
if(!empty($year)) $where[] = "year='$year'";
if(!empty($probeg)) $where[] = "probeg<='$probeg'";
if(!empty($ruly)) $where[] = "ruly='$ruly'";
if(!empty($korobka)) $where[] = "korobka='$korobka'";
if(!empty($region)) $where[] = "region='$region'";
if(!empty($gorod)) $where[] = "gorod='$gorod'";

//Постраничная навигация!
//Задаём число текстовых блоков на странице
$num = 20;
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];

if(!empty($where)) 

$query = "SELECT COUNT(*) FROM doska WHERE ".implode(" AND ", $where); 

else 

$query = "SELECT COUNT(*) FROM doska"; 
}
$result00 = mysql_query($query, $db);

$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total =  intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
  if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
if(!empty($where))
{
$query1 = "SELECT * FROM doska WHERE ".implode(" AND ", $where)." ORDER BY id DESC LIMIT $start, $num";
}
else
{
$query1 = "SELECT * FROM doska ORDER BY id DESC LIMIT $start, $num";
}
$result = mysql_query($query1, $db);


Вставить условие для всех существующих переменных:

WHERE podrazd='Легковые автомобили'

  Ответить  
 
 автор: sega_z   (05.05.2011 в 18:38)   письмо автору
 
   для: sega_z   (05.05.2011 в 17:33)
 

Я просто забыл изначально сказать об этом условии WHERE podrazd='Легковые автомобили', и думаю почему выводятся все данные.

  Ответить  
 
 автор: Lotanaen   (06.05.2011 в 09:44)   письмо автору
 
   для: sega_z   (05.05.2011 в 17:33)
 

да просто добавить в скрипт
$where[] = "podrazd='Легковые автомобили'";
для удобства чтения сразу после $where = array();

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования