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

Форум PHP

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

 

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

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

тема: Помогите разобраться со скриптом поиска по базе
 
 автор: kviki   (06.04.2007 в 14:58)   письмо автору
 
 

Помогите пожалуйста разобраться со скриптом поиска, дело вот в чем, хочу чтобы при поиске по базе данные выводились постранично, надписи следующая выдает но при нажатии открывается страница где кроме формы поиска больше ничего нет, просто пусто.
вот скриптик, подскажите где и что не так. Заранее спасибо за помощью

<?php

Error_Reporting(E_ALL & ~E_NOTICE);
// Устанавливаем соединение с базой данных
require_once("config.php");
$title="Поиск";

?>
<title><?php print "$title"; ?></title>
<center><h1 class=artnamepage><?php print "$title"; ?></h1></center>


<form action=ishu.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=firm>
<option value='none' <?php if($_POST['firm']=='none') echo "selected"; ?>>не имеет значения
<option value='SanDisk' <?php if($_POST['firm']=='SanDisk') echo "selected"; ?>>SanDisk
<option value='KingStone' <?php if($_POST['firm']=='KingStone') echo "selected"; ?>>KingStone
</select>
</td>
</tr>
<td width="130"><p class='textcat'>Город</td>
<td>
<select class="input" type=text name=city>
<option value='none' <?php if($_POST['city']=='none') echo "selected"; ?>>не имеет значения
<option value='moskva' <?php if($_POST['city']=='moskva') echo "selected"; ?>>Москва
<option value='piter' <?php if($_POST['city']=='piter') echo "selected"; ?>>Санкт-Петербург
<option value='omsck' <?php if($_POST['city']=='omsck') echo "selected"; ?>>Омск
<option value='tyla' <?php if($_POST['city']=='tyla') echo "selected"; ?>>Тула
<option value='magadan' <?php if($_POST['city']=='magadan') echo "selected"; ?>>Магадан
<option value='vologda' <?php if($_POST['city']=='vologda') echo "selected"; ?>>Вологда
<option value='kazan' <?php if($_POST['city']=='kazan') echo "selected"; ?>>Казань
<option value='samara' <?php if($_POST['city']=='samara') echo "selected"; ?>>Самара
</select>
</td>
</tr>
<tr>
<td><p class='textcat'>Тип памяти:</td>
<td>
<select class="input" type=text name=tip>
<option value='none' <?php if($_POST['tip']=='none') echo "selected"; ?>>не имеет значения
<option value='SD' <?php if($_POST['tip']=='SD') echo "selected"; ?>>SD
<option value='Micro SD' <?php if($_POST['tip']=='Micro SD') echo "selected"; ?>>Micro SD
<option value='Mini SD/TransFlash' <?php if($_POST['tip']=='Mini SD/TransFlash') echo "selected"; ?>>Mini SD/TransFlash
<option value='MMC ' <?php if($_POST['tip']=='MMC ') echo "selected"; ?>>MMC
<option value='CompactFlash ' <?php if($_POST['tip']=='CompactFlash ') echo "selected"; ?>>CompactFlash
<option value='MemoryStick' <?php if($_POST['tip']=='MemoryStick ') echo "selected"; ?>>MemoryStick
</select>

</td>
</tr>
<tr>
</td>
</tr>
<tr>

</td>
</tr>
</table>
</td><td width="10%">&nbsp;</td><td>
<table border="0">
<tr>

<td><p class='textcat'>Состояние </td><td>
<select class="input" type=text name=sost>
<option value='none' <?php if($_POST['sost']=='none') echo "selected"; ?>>не имеет значения
<option value='new' <?php if($_POST['sost']=='new') echo "selected"; ?>>Новая
<option value='staray' <?php if($_POST['sost']=='staray') echo "selected"; ?>>Б\У
</select>

</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']; ?>>
<select class="input" type=text name=valyta>
<option value='RUR' <?php if($_POST['valyta']=='RUR') echo "selected"; ?>>RUR
<option value='USD' <?php if($_POST['valyta']=='USD') echo "selected"; ?>>USD
<option value='EURO' <?php if($_POST['valyta']=='EURO') echo "selected"; ?>>EURO
</select>

</td>
</tr>
<tr>
<td><p class='textcat'>Дата</td>
<td><p class='textcat'>от <input class="input" size=6 type=text name=data_min value=<?php echo $_POST['data_min']; ?>>
до <input class="input" size=6 type=text name=data_max value=<?php echo $_POST['data_max']; ?>>

</td>
</tr>
<tr>


</tr>
</table>
</td>
</tr>
<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 = $tmp5 = $tmp6 = $tmp7 = $tmp8 =
$tmp9 = $tmp10 = $tmp11 = $tmp12 = $tmp13 = $tmp14 = $tmp15 = $tmp16 = $tmp17="";

// Город
if(isset($_POST['city']) && $_POST['city']!='none')
$tmp1 = " and city='".$_POST['city']."'";

// Состояние
if(!empty($_POST['sost']) && $_POST['sost'] != 'none')
$tmp10 = " and sost='".$_POST['sost']."'";

// Тип памяти:
if(isset($_POST['tip']) && $_POST['tip'] != 'none')
$tmp11 = " and tip='".$_POST['tip']."'";

// Цена
if(!empty($_POST['price_min']))
$tmp12 = " and price>".$_POST['price_min'];
if(!empty($_POST['price_max']))
$tmp13 = " and price<".$_POST['price_max'];

//Фирма
if(isset($_POST['firm']) && $_POST['firm']!='none')
$tmp14 = " and firm='".$_POST['firm']."'";

// Дата
if(!empty($_POST['data_min']))
$tmp15 = " and data>".$_POST['data_min'];
if(!empty($_POST['data_max']))
$tmp16 = " and data<".$_POST['data_max'];

// Валюта
if(!empty($_POST['valyta']) && $_POST['valyta'] != 'none')
$tmp4 = " and valyta='".$_POST['valyta']."'";

// Осуществляем соединение с базой данных
// Извлекаем из строки запроса параметр start
if(isset($_GET['start'])) $start = $_GET['start'];
else $start = "";
// Стартовая точка
if (empty($start)) $start = 0;
// Стартовая точка не может быть меньше нуля
if ($start < 0) $start = 0;

// Запрашиваем общее число отображаемых сообщений
$query = "SELECT count(*) FROM product
WHERE hide = 'show'";
$tot = mysql_query($query);

// Запрашиваем сами сообщения
$query = "SELECT * FROM product
WHERE hide = 'show'
".$tmp11.$tmp1.$tmp2.$tmp3.$tmp4.$tmp5.$tmp6.$tmp7.$tmp8.
$tmp9.$tmp10.$tmp12.$tmp13.$tmp14.$tmp15.$tmp16.$tmp17."

ORDER BY puttime DESC
LIMIT $start, $pnumber";
$thm = mysql_query($query);
if(!$tot || !$thm) puterror("Ошибка при выборке сообщений...");
// Выполняем SQL-запрос
$prt = mysql_query($query);
if(!$prt) puterror("Ошибка при обращении к Доске Объявлений");
// количество рядов в наборе должно быть больше нуля
if (mysql_num_rows($prt)>0)
{

// Общее число отображаемых сообщений
$count= mysql_result($tot,0);


while($themes = mysql_fetch_array($thm))
{
$thm = mysql_query($query);
if(!$tot || !$thm) puterror("Ошибка при выборке сообщений...");
// Общее число отображаемых сообщений
$count= mysql_result($tot,0);
// Выводим ссылки на предыдущие и следующие сообщения
if ($start > 0) print "<a href=$_SERVER[PHP_SELF]?start=".($start-$pnumber).">Предыдущие</A>";
if ($count > $start + $pnumber) print " <a href=$_SERVER[PHP_SELF]?start=".($start + $pnumber).">Следующие</A><br>";
echo "<br>";
while($themes = mysql_fetch_array($thm))

// Выполняем SQL-запрос
$prt = mysql_query($query);
if(!$prt) puterror("Ошибка при обращении к Доске Объявлений");
// количество рядов в наборе должно быть больше нуля
if (mysql_num_rows($prt)>0)
{
echo "<br>";
?>
<table class="table" border="1" cellpadding="3" cellspacing="0" width="100%" bordercolordark="white" bordercolorlight="silver">
<thead><tr class="zagtrtable" align="center">
<td height="20">
<a href=#>Дата</a></td>
<td><a href=#>Производитель</a></td>
<td><a href=#>Тип памяти</a></td>
<td><a href=#>Описание</a></td>
<td><a href=#>Цена</a></td>
<!-- <td>Валюта</td> -->
<td><a href=#>Адрес</a></td>
<!-- <td>email</td> -->

<!-- <td>Сост.</td> -->
<td><a href=#>Телефон</td>
<td><a href=#>Ваше имя или фирма</td>

</tr></thead>
<?
while($par = mysql_fetch_array($prt))
{
// Определяем Фирму
switch ($par['firm'])
{
case 'SanDisk':
$_POST['firm'] = "SanDisk";
break;
case 'KingStone':
$_POST['firm'] = "KingStone";
break;

}
// Определяем город
switch ($par['city'])
{
case 'moskva':
$distr = "Москва.";
break;
case 'piter':
$distr = "Санкт-Петербург";
break;
case 'omsck':
$distr = "Омск";
break;
case 'tyla':
$distr = "Тула";
break;
case 'magadan':
$distr = "Магадан";
break;
case 'vologda':
$distr = "Вологда";
break;
case 'kazan':
$distr = "Казань";
case 'samara':
$distr = "Самара";
break;
}

// Определяем Тип памяти:
switch ($par['tip'])
{
case 'SD':
$_POST['tip'] = "SD";
break;
case 'Micro SD':
$_POST['tip'] = "Micro SD";
break;
case 'Mini SD/TransFlash':
$_POST['tip'] = " Mini SD/TransFlash ";
break;
case 'MMC':
$_POST['tip'] = "MMC";
break;
case 'CompactFlash':
$_POST['tip'] = "CompactFlash";
break;
case 'MemoryStick':
$_POST['tip'] = "MemoryStick";
break;
}
// Определяем Состояние Памяти
switch ($par['sost'])
{
case 'new':
$_Get['sost'] = "Новая";
break;
case 'staray':
$_Get['sost'] = "Б\У";
break;
}
// Вывод данных

echo "<tr><td>".$par['data']."</td>
<td>".$_POST['firm']."</td>
<td>".$_POST['tip']."</td>

<td>".$_POST['sost'].". ".$par['opis']."</td>

<td>".$par['price']." (".$par['valyta'].")</td>
<!-- <td>".$par['valyta']."</td> -->
<td>$distr, ".$par['adress']."</td>

<!-- <td>".$par['email']."</td> -->

<!-- <td>".$_POST['sost']."</td> -->
<td>(".$par['kod'].")".$par['tel']."<br>".$par['email']."</td>
<td>".$par['name']."</td>
<!-- <td>".$par['adress']."</td> -->
</tr>";
}
}

else echo "Поиск не дал результатов.
Попробуйте изменить критерии поиска.";
echo "</table><br>";
}
}
}
echo "<br>";

// Выводим ссылки на предыдущие и следующие сообщения
if ($start > 0) print "<td><a href=$_SERVER[PHP_SELF]?start=".($start-$pnumber).">Предыдущие</a></td>";
if ($count > $start + $pnumber) print "<td> <a href=$_SERVER[PHP_SELF]?start=".($start + $pnumber).">Следующие</a></td>";
echo "<br><br>";

?>
если можно реализовать как-то иначе постраничную навигацию для этого примера, буду рад если подскажете.

   
 
 автор: XPraptor   (06.04.2007 в 16:04)   письмо автору
 
   для: kviki   (06.04.2007 в 14:58)
 

Здесь на форуме воспользовавшись поиском, найдете тему постраничная навигация. В которой приведен доработанный универсальный код навигации.

   
Rambler's Top100
вверх

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