|
|
|
|
|
для: Trianon
(03.07.2007 в 19:19)
| | спасибо. получилось!!! супер!! | |
|
|
|
|
|
|
|
для: Wolfram
(03.07.2007 в 14:16)
| |
if(!empty($_POST['vid']))
$tmp2 = " and vid=".$_POST['vid']."'";
|
| |
|
|
|
|
|
|
|
для: Trianon
(03.07.2007 в 09:52)
| | я вставил
<td><input class="input" size="8" type=text name=vid value="<?php
echo htmlspecialchars($_POST['vid']); ?>"></td>
|
вместо
<tr>
<td><p class='textcat'>Вид товара</td>
<td><input class="input" size="8" type=text name=vid
<option value = <?php echo $_POST['vid']; ?>></td>
</tr>
<tr>
|
но результат тот же. По виду товара не ищет...только по категории и цене...
может быть проблема с таблицей..? или код неправильный? | |
|
|
|
|
|
|
|
для: Wolfram
(03.07.2007 в 09:39)
| |
<td><input class="input" size="8" type=text name=vid value="<?php
echo htmlspecialchars($_POST['vid']); ?>"></td>
|
| |
|
|
|
|
 10.4 Кб |
|
| Я хочу сделать на своём сайте поиск по примеру "поиска по каталогу", который описан в книге "PHP 5 Практика создания веб-сайтов". Скрипт формы для поиска в приложении.
Система поиска на моём сайте должна искать по трём параметрам: категория, вид товара и цена. Я изменил searchform.php, чтобы подогнать под эти параметры. Но ищет он только по цене. И когда вводишь что-нибудь в строке "вид товара", выдается вся таблица с товарами, даже теми которые не подходят по параметру. Я думаю, что здесь проблема в том, что я неправильно оформил скрипт, а именно ту часть, где про вид товара. Но как изменить его я не знаю. Помогите с советом.
Скрипт у меня выглядит так:
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
$title="Поиск в каталоге";
include "top.php";
?>
<h1 class=artnamepage>Поиск в каталоге</h1>
<form action=searchform.php method=post>
<input type="hidden" name="id_parent" value="<? echo $id_parent ?>">
<table border="0" align="center"><tr valign="top"><td>
<table border="0">
<tr valign="top">
<td width="130"><p class='textcat'>Категория</td>
<td>
<select class="input" type=text name=categoria>
<option value='none' <?php if($_POST['categoria']=='none') echo "selected"; ?>>Во всех категориях
<option value='avtomobili' <?php if($_POST['categoria']=='avtomobili') echo "selected"; ?>>Автомобили
<option value='apteki' <?php if($_POST['categoria']=='apteki') echo "selected"; ?>>Аптеки
<option value='banki' <?php if($_POST['categoria']=='banki') echo "selected"; ?>>Банки
<option value='dvd' <?php if($_POST['categoria']=='dvd') echo "selected"; ?>>DVD
</select>
</td>
<tr>
<td><p class='textcat'>Вид товара</td>
<td><input class="input" size="8" type=text name=vid
<option value = <?php echo $_POST['vid']; ?>></td>
</tr>
<tr>
<tr>
<td><p class='textcat'>цена, руб.</td>
<td><p class='textcat'>от <input class="input" size=6 type=text name=price_min value=<?php echo $_POST['price_min']; ?>>
до <input class="input" size=6 type=text name=price_max value=<?php echo $_POST['price_max']; ?>>
</td>
<tr>
<td colspan=2>
<input class=button type=submit value=Искать>
</td>
</tr>
</table>
<input type=hidden name=search value=search>
</form>
<?php
// Cкрипт-обработчик поискового запроса
// из формы
if(isset($_POST['search']))
{
?>
<a name=table></a>
<?php
// Флаг равен true, если есть хотя бы один критерий поиска
$is_query = false;
// Проверяем наличие и число параметров поиска
// категория
$tmp1 = $tmp2 = $tmp3 = $tmp4 ="";
if(isset($_POST['categoria']) && $_POST['categoria']!='none')
$tmp1 = " and categoria='".$_POST['categoria']."'";
//Вид
if(!isset($_POST['vid']))
$tmp2 = " and vid=".$_POST['vid']."'";
// Цена
if(!empty($_POST['price_min']))
$tmp3 = " and price>".$_POST['price_min'];
if(!empty($_POST['price_max']))
$tmp4 = " and price<".$_POST['price_max'];
// Формируем запрос из переданных данных
$query = "SELECT * FROM product
WHERE hide='show'
".$tmp1.$tmp2.$tmp3.$tmp4."
ORDER BY pos";
// Выполняем SQL-запрос
$prt = mysql_query($query);
if(!$prt) puterror("Ошибка при обращении к таблице риэлторских услуг");
// количество рядов в наборе должно быть больше нуля
if (mysql_num_rows($prt)>0)
{
?>
<table class="table" border="1" cellpadding="3" cellspacing="0" width="100%" bordercolordark="white" bordercolorlight="silver">
<tr class="zagtrtable" align="center">
<td>Категория</td>
<td>Вид товара </td>
<td>Цена</td>
<td>Марка</td>
<td>Страна прооизводитель</td>
<td>Описание</td>
<td>Фото</td>
<td>Предприятие</td>
<td>Описание предприятия</td>
</tr>
<?
while($par = mysql_fetch_array($prt))
{
// Определяем район
switch ($par['categoria'])
{
case 'avtomobili':
$categ = "Автомобили";
break;
case 'apteki':
$categ = "Аптеки";
break;
case 'banki':
$categ = "Банки";
break;
case 'DVD':
$categ = "DVD";
break;
}
echo "<tr>
<td>$categ</td>
<td>".$par['vid']."</td>
<td>".$par['price']."</td>
<td>".$par['marka']."</td>
<td>".$par['strana']."</td>
<td>".$par['note']."</td>
<td>".$par['photo']."</td>
<td>".$par['firma']."</td>
<td>".$par['address']."</td>
</tr>";
}
}
else echo "Поиск не дал результатов.
Попробуйте изменить критерии поиска.";
echo "</table>";
}
include "/bottom.php";
?>
|
| |
|
|
|
|