|
|
|
| У меня есть форма запроса по 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(!$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>";
}
}
|
Я разбила запрос на две части. Каждый раз при запросе выходит список всех отелей по заданному району. Как исправить? Спасибо. | |
|
|
|
|
|
|
|
для: sasch
(03.06.2006 в 12:43)
| | А какова структура таблиц и что означает status? | |
|
|
|
|
|
|
|
для: cheops
(03.06.2006 в 13:12)
| | status - это звездность отеля. Таблица, если я вас правильно поняла то вы говорите о БД, | |
|
|
|
|
|
|
|
для: sasch
(03.06.2006 в 13:25)
| | Если кто-нибудь решал подобные вопросы, помогите, а то у меня не получается нужный результат. | |
|
|
|
|
|
|
|
для: sasch
(03.06.2006 в 14:44)
| | Я дагодалась, надо было просто второй запрос взять в {}. Ура... | |
|
|
|
|
|
|
|
для: sasch
(03.06.2006 в 15:27)
| | Этo правильно или только выход из положения? | |
|
|
|
|
|
|
|
для: sasch
(03.06.2006 в 15:29)
| | Если работате то да, вообще логика скрипта у вас верная... если записей нет в результирующей таблице - оформлять следующий запрос. | |
|
|
|
|
|
|
|
для: cheops
(03.06.2006 в 22:02)
| | А как бы Вы его оформили? Если Вам не трудно поеажите... | |
|
|
|
|
|
|
|
для: 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(!$prt) puterror("ERROR!");
if (mysql_num_rows($prt)>0)
{
while($par = mysql_fetch_array($prt))
{
...
}
}
?>
|
| |
|
|
|