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

Форум MySQL

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

 

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

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

тема: запрос работает странно.
 
 автор: Mefisto84   (21.05.2006 в 19:11)   письмо автору
9 Кб
 
 

Здравствуйте!
У меня такая проблема. Есть файл в котором форма для поиска(немного переделанная из вашего "Универсального каталога"). И вот там такая проблема, если я в поле "Где искать" выбираю "квартира " то у меня выводится только одна запись. А квартир в базе 4. А если выбираю хоть что другое в том же поле, то все работает нормально, прям фантастика. Посмотрел, запрос и в том и в другом случае выглядит одинаково, ну в смысле синтаксис. В чем может быть причина? Посмотрите пожалуйста. Файл в аттаче.

   
 
 автор: cheops   (21.05.2006 в 21:46)   письмо автору
 
   для: Mefisto84   (21.05.2006 в 19:11)
 

Какой запрос в конечном итоге формируем скрипт?

   
 
 автор: Mefisto84   (22.05.2006 в 13:57)   письмо автору
 
   для: cheops   (21.05.2006 в 21:46)
 

Вот код самого запроса который формируется.

$query = "SELECT * FROM product 
            WHERE hide='show'
            ".$tmp11.$tmp1.$tmp2.$tmp3.$tmp4.$tmp5.$tmp6.$tmp7.$tmp8.
            $tmp9.$tmp10.$tmp12.$tmp13.$tmp14.$tmp15.$tmp16.$tmp17.$tmp18." 
            ORDER BY nomination";

Синтаксис конечно одинаковый с любыми данными в запросе. Но при выборе квартиры он работает не правильно!
Заранее благодарен.

   
 
 автор: cheops   (22.05.2006 в 16:12)   письмо автору
 
   для: Mefisto84   (22.05.2006 в 13:57)
 

Пожалуйста выведите его в окно браузера
<?php
  
echo $query;
?>

как он выглядит уже сформированный?

   
 
 автор: Mefisto84   (22.05.2006 в 18:07)   письмо автору
 
   для: cheops   (22.05.2006 в 16:12)
 

Спасибо за помощь. Ну как я говорил, я его выводил он выглядит во всех случаях одинаково, в смысле синтаксис, вот пожалуйста, если указываю в поиске квартира:

SELECT * FROM product WHERE hide='show' and balcony='none' and nomination='квартира' ORDER BY nomination

а вот если к примеру гараж:

SELECT * FROM product WHERE hide='show' and balcony='none' and nomination='гараж' ORDER BY nomination 

И когда указываешь квартира то выводит одну запись, а их 4. А если указываешь хоть что другое, к примеру гараж, то показывает все.

   
 
 автор: Trianon   (22.05.2006 в 18:19)   письмо автору
 
   для: Mefisto84   (22.05.2006 в 18:07)
 

А фрагмент дампа с четырьмя квартирами можно глянуть?

   
 
 автор: Mefisto84   (22.05.2006 в 18:42)   письмо автору
 
   для: Trianon   (22.05.2006 в 18:19)
 

дамп? Конечно можно, там все равно данные не реальные, это я пока что тренируюсь по Вашей книге. Дамп в аттаче.

   
 
 автор: Trianon   (22.05.2006 в 19:19)   письмо автору
 
   для: Mefisto84   (22.05.2006 в 18:42)
 

Теперь всё ясно. У Вас balkony = 'none' получается только в одной из 4-х строк. В той, где в этом поле стоит 0.
И одна-то лишняя... поле balkony - целочисленное. Сравнивать его со строкой none - несколько самонадеяно.

BTW. Это не моя книга. Во всяком случае, не более чем Ваша. :)

   
 
 автор: Mefisto84   (23.05.2006 в 14:37)   письмо автору
 
   для: Trianon   (22.05.2006 в 19:19)
 

Большое спасибо что указали мне на этот балкон. Я посмотрел еще раз внимательно код, и обнаружил посредине строку echo $_POST['nomination']. Не помню для чего я её выводил, но когда я её снес, о чудо :-) все заработало. ДВедь балкон при параметре none не должен был добавляться в запрос. Спасибо, блин невнимательность.

   
Rambler's Top100
вверх

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