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

Форум MySQL

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

 

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

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

тема: Помогите с запросом
 
 автор: sasch   (03.06.2006 в 12:43)   письмо автору
 
 

У меня есть форма запроса по 3-м параметрам.
Город - район - отель
Пытаюсь сделать такай ход, что если в заданном городе и районе нет отеля который отвечал бы параметрам поиска - выводим список всех отелей на класс ниже и выше.


  if(isset($_POST['status']) && $_POST['status']!='0') $tmp2 = " and status='".$_POST['status']."'"; 
  if(isset($_POST['city']) && $_POST['city']!='0') $tmp1 = " and city='".$_POST['city']."'";
  if(isset($_POST['location']) && $_POST['location']!='0') $tmp3 = " and location='".$_POST['location']."'";
  $query = "SELECT * FROM hotels 
            WHERE hide='show'
            ".$tmp1.$tmp2.$tmp3." 
            ORDER BY status, distance";
  $prt = mysql_query($query);
  if(!$prt) puterror("ERROR!");
  if (mysql_num_rows($prt)>0)
  {
    ?>

    <?
    
while($par mysql_fetch_array($prt))
    { 
      echo 
"<form name='".$par['hotel_name']."' action='../".$par['link']."' method='POST'>";
   
// echo "<input type=hidden value='$city' name='city'>";
   // echo "<input type=hidden value='$location' name='location'>";
      
echo "<input type=hidden value='".$par['hotel_ID']."' name='prop_ID'>";
   
// echo "<input type=hidden value='".$par['hotel_name']."' name='hotel_name'>";
      
echo "<input type=hidden value='$datea' name='datea'>";
      echo 
"<input type=hidden value='$dated' name='dated'>";
   
//   echo "<input type=hidden value='$daystotal' name='dayatotal'>";
      
echo"<h3>".$par['hotel_name']."$i</h3>
                  <div class=status><img src=../
$status></div>
                  <div class=hotpic>
      <img class=hotpic  src=../"
.$par['photo'].">
      <p>Address: 
$country$city, ".$par['address']."<br>
      Nearest metro: "
.$par['metro']."<br>
      Distance: "
.$par['distance']."<br>   
  Hotel Note: <a class=hotelnote>"
.$par['note']."</a><br>
     <ul class=reserve>
     <li class=reserve><a href=../"
.$par['link']."></a></li>
   </ul></div>"
;
echo 
"<div class=reserve-button reserve><input type=image id=reserve-button src=../images/icons/learnmore.jpg>
        <input type=hidden name=search value=search></form></div>"
;
    }
  }
  else 
      echo(
"<div id=msg-error><img src=../images/icons/attantion.jpg width=18 height=16 />
            <p>Sorry, but there are no "
.$_SESSION['status']." star hotels in that area of ".$_SESSION['city'].".</p> 
            <li>Please, check the list of hotels that we have selected for you according your request</li> 
            </div>"
); 
            
  if(isset(
$_POST['status']) && $_POST['status']!='0'$Xstat != " and status='".$_POST['status']."'"
  
$query "SELECT * FROM hotels 
            WHERE location = '"
.$_POST['location']."' and city='".$_POST['city']."'
            "
.$Xstat."
            ORDER BY status, distance"
;
  
$prt mysql_query($query);
  if(!
$prtputerror("ERROR!");
  if (
mysql_num_rows($prt)>0)
  {
    while(
$par mysql_fetch_array($prt))
    {  
      echo 
"<form name='".$par['hotel_name']."' action='../".$par['link']."' method='POST'>";
   
// echo "<input type=hidden value='$city' name='city'>";
   // echo "<input type=hidden value='$location' name='location'>";
      
echo "<input type=hidden value='".$par['hotel_ID']."' name='prop_ID'>";
   
// echo "<input type=hidden value='".$par['hotel_name']."' name='hotel_name'>";
      
echo "<input type=hidden value='$datea' name='datea'>";
      echo 
"<input type=hidden value='$dated' name='dated'>";
   
//   echo "<input type=hidden value='$daystotal' name='dayatotal'>";
      
echo"<h3>".$par['hotel_name']."$i</h3>
                  <div class=status><img src=../
$status></div>
                  <div class=hotpic>
      <img class=hotpic  src=../"
.$par['photo'].">
      <p>Address: 
$country$city, ".$par['address']."<br>
      Nearest metro: "
.$par['metro']."<br>
      Distance: "
.$par['distance']."<br>   
  Hotel Note: <a class=hotelnote>"
.$par['note']."</a><br>
     <ul class=reserve>
     <li class=reserve><a href=../"
.$par['link']."></a></li>
   </ul></div>"
;
echo 
"<div class=reserve-button reserve><input type=image id=reserve-button src=../images/icons/learnmore.jpg>
        <input type=hidden name=search value=search></form></div>"
;
    }    
    }        

Я разбила запрос на две части. Каждый раз при запросе выходит список всех отелей по заданному району. Как исправить? Спасибо.

   
 
 автор: cheops   (03.06.2006 в 13:12)   письмо автору
 
   для: sasch   (03.06.2006 в 12:43)
 

А какова структура таблиц и что означает status?

   
 
 автор: sasch   (03.06.2006 в 13:25)   письмо автору
 
   для: cheops   (03.06.2006 в 13:12)
 

status - это звездность отеля. Таблица, если я вас правильно поняла то вы говорите о БД,

   
 
 автор: sasch   (03.06.2006 в 14:44)   письмо автору
 
   для: sasch   (03.06.2006 в 13:25)
 

Если кто-нибудь решал подобные вопросы, помогите, а то у меня не получается нужный результат.

   
 
 автор: sasch   (03.06.2006 в 15:27)   письмо автору
 
   для: sasch   (03.06.2006 в 14:44)
 

Я дагодалась, надо было просто второй запрос взять в {}. Ура...

   
 
 автор: sasch   (03.06.2006 в 15:29)   письмо автору
 
   для: sasch   (03.06.2006 в 15:27)
 

Этo правильно или только выход из положения?

   
 
 автор: cheops   (03.06.2006 в 22:02)   письмо автору
 
   для: sasch   (03.06.2006 в 15:29)
 

Если работате то да, вообще логика скрипта у вас верная... если записей нет в результирующей таблице - оформлять следующий запрос.

   
 
 автор: sasch   (03.06.2006 в 22:50)   письмо автору
 
   для: cheops   (03.06.2006 в 22:02)
 

А как бы Вы его оформили? Если Вам не трудно поеажите...

   
 
 автор: cheops   (04.06.2006 в 10:42)   письмо автору
 
   для: sasch   (03.06.2006 в 22:50)
 

Да собственно так же как и вы. Я тоже предпочитают обработку SQL-запросов по схеме
<?php
  $query 
"SELECT * FROM hotels 
            WHERE hide='show' 
            "
.$tmp1.$tmp2.$tmp3.
            ORDER BY status, distance"

  
$prt mysql_query($query); 
  if(!
$prtputerror("ERROR!"); 
  if (
mysql_num_rows($prt)>0
  {
    while(
$par mysql_fetch_array($prt)) 
    {
       ...
    }
  }
?>

   
Rambler's Top100
вверх

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