|
|
|
| Всем привет и хорошего настроения!
Возникла проблема:
Есть скрипт searchkvar.php который принимает данные и формы поиска и выводит их из бд:
<?php
include "config.php";
if(!empty($_POST['objectid'])) $where[] = "objectid = ".$_POST['objectid'];
if(!empty($_POST['mkomn'])) $where[] = "mkomn = ".$_POST['mkomn'];
if(!empty($_POST['area'])) $where[] = "area like '%".$_POST['area']."%'";
if(!empty($_POST['floor'])) $where[] = "floor rlike '^".$_POST['floor']."/'";
if(!empty($_POST['sall_min'])) $where[] = "sall >= ".$_POST['sall_min'];
if(!empty($_POST['sall_max'])) $where[] = "sall <= ".$_POST['sall_max'];
if(!empty($_POST['kitchen_min'])) $where[] = "kitchen >= ".$_POST['kitchen_min'];
if(!empty($_POST['kitchen_max'])) $where[] = "kitchen <= ".$_POST['kitchen_max'];
if(!empty($_POST['price_min'])) $where[] = "price >= ".$_POST['price_min'];
if(!empty($_POST['price_max'])) $where[] = "price <= ".$_POST['price_max'];
if(!empty($_POST['metro'])) $where[] = "metro like '%".$_POST['metro']."%'";
if(!empty($_POST['phone'])) $where[] = "phone like '%".$_POST['phone']."%'";
if(!empty($_POST['house'])) $where[] = "house like '%".$_POST['house']."%'";
if(!empty($_POST['wc'])) $where[] = "wc like '%".$_POST['wc']."%'";
if(!empty($_POST['photoid'])) $where[] = "photoid = ".$_POST['photoid'];
global $where;
echo "<a href=searchkvar.php?sort=area>Сортировка по району</a>";
$query = "select * from kvarts left join
db_photo on kvarts.objectid = db_photo.
photoid where ".implode(" AND ",$where)."
order by $sort";
$result = mysql_query($query);
if (!$result) exit(mysql_error());
if (mysql_num_rows($result) == 0)
{
echo "Извините, но по вашему запросу ничего не найдено. Попробуйте еще раз.<br><br>
}
$num_results = mysql_num_rows ($result);
echo "Найдено записей: ".$num_results;
echo "\n<table class=content border=1 align=center cellpadding=1 cellspacing=0>";
echo "<tr>";
echo "<td class=2 align=center><b>В<br>ы<br>б<br>о<br>р</b></td>";
echo "<td class=2 align=center><b>№<br>о<br>б<br>ъ<br>е<br>к<br>т<br>а</b></td>";
echo "<td class=2 align=center><b>К<br>о<br>л<br>-<br>в<br>о<br> <br>к<br>о<br>м<br>н<br>а<br>т</b></td>";
echo "<td class=2 align=center><b>Район</b></td>";
echo "<td class=2 align=center><b>Адрес</b></td>";
echo "<td class=2 align=center><b>Э<br>т<br>а<br>ж</b></td>";
echo "<td class=2 align=center><b>О<br>б<br>щ<br>а<br>я<br> <br>п<br>л<br>о<br>щ<br>а<br>д<br>ь</b></td>";
echo "<td class=2 align=center><b>Жилая площадь</b></td>";
echo "<td class=2 align=center><b>К<br>у<br>х<br>н<br>я</b></td>";
echo "<td class=2 align=center><b>Метро</b></td>";
echo "<td class=2 align=center><b>Т<br>е<br>л<br>е<br>ф<br>о<br>н</b></td>";
echo "<td class=2 align=center><b>Тип дома</b></td>";
echo "<td class=2 align=center><b>С<br>а<br>н<br>у<br>з<br>е<br>л</b></td>";
echo "<td class=2 align=center><b>Цена<br>USD</b></td>";
echo "<td class=2 align=center><b>Дополнительно</b></td>";
echo "<td class=2 align=center><b>Ф<br>о<br>т<br>о</b></td></tr>";
for ($i=0; $i < $num_results; $i++)
{
if($i%2==0) $color='white';
else $color = 'pink';
$arr_quest=mysql_fetch_array ($result);
if (empty($arr_quest["photo1_os"]))
{
$fot="<img src=images/emp.jpg alt='У объекта нет фотографий'>";
}
else
{
$fot="<a href=view.php?photoid=".
$arr_quest['photoid']." target=_blank
onclick=window.open(this.href,this.target,
'width=1100,height=190,location=no,
toolbar=no,menubar=no,status=no');event.
returnValue = false;><img src=images/img.
jpg border=0 alt='Объект содержит
фотографии'></a>";
}
echo "<tr>";
echo "<form action=print_kvar.php method=post>";
echo "<td bgcolor=$color class=3><input type=checkbox name=\"id[]\" value=".$arr_quest["objectid"]." ></td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["objectid"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["mkomn"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["area"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["address"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["floor"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["sall"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["slive"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["kitchen"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["metro"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["phone"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["house"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["wc"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["price"]."</td>";
echo "<td bgcolor=$color class=3 align=center>".$arr_quest["dop"]."</td>";
echo "<td class=3 align=center>$fot</td></tr>";
};
echo "</td></tr>";
echo "<input class=2 type=submit value='Распечатать выбранные'>";
echo "<br>";
echo "<br>";
echo "<input class=2 type=reset value='Сбросить'>";
echo "</form>";
echo "</table>";
?>
|
Хочется чтобы после вывода результатов, можно было отсортировать по столбцу который выберет пользователь. global $where делаю чтобы количество записей после перехода по ссылке оставалось таким же.!
Подсобите, заранее благодарен. | |
|
|
|
|
|
|
|
для: Front
(13.04.2007 в 13:33)
| | Выполняйте сортировку в момент запроса к БД | |
|
|
|
|
|
|
|
для: Loki
(13.04.2007 в 13:36)
| | Да но мне нужно отсортировать уже результат запроса (выполненного)! | |
|
|
|
|
|
|
|
для: Front
(13.04.2007 в 13:38)
| | Зачем? | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2007 в 13:41)
| | Чтобы было удобно просматривать результаты! | |
|
|
|
|
|
|
|
для: Front
(13.04.2007 в 13:43)
| | Для этого вполне можно обойтись сортировкой средствами SQL.
Вы просите решить Вашу задачу, извините, через задницу.
Должны же быть какие-то аргументы в пользу такого подхода. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2007 в 13:46)
| | Хорошо, рассмотрим пример. Пользователь зашел на сайт чтобы купить себе квартиру, машину, неважно что. Он попадает на форму с поиском где вводит параметры соответствующие его покупке и указывает, что ему нужно отсортировать результаты по цене.
Идет запрос к базе данных и пользователю выводятся результаты соответствующие параметрам указанным в форме поиска.
Вдруг у него возникает желание отсортировать уже полученные результаты не по цене, как он указал ранее, а допустим по типу дома (если например брать мой скрипт).
В этом случае у пользователя нету варианта, кроме одного - Вернуться к форме поиска - изменить тип сортировки на "сортировать по - ТИПУ ДОМА".
Разве не удобнее, нажать на кнопку на странице с результатами и осуществить сортировку. Без возврата на форму поиска.
Вот такие вот аргументы. :-)) | |
|
|
|
|
|
|
|
для: Front
(13.04.2007 в 14:19)
| | >Разве не удобнее, нажать на кнопку на странице с результатами и осуществить сортировку. Без возврата на форму поиска.
Конечно. Но скрипт, отрабатывающий эту кнопку всё равно будет вынужден запросить данные заново. Пользователь же их руками в массив не введет? А при новом запросе скрипту ничего не мешает указать новый порядок. | |
|
|
|
|
|
|
|
для: Front
(13.04.2007 в 13:33)
| | Используйте передачу данных методом GET, а не POST - можно будет и ссылаться на результаты поиска и изменить один из GET-параметров, ответственных за сортировку. | |
|
|
|