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

Форум PHP

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

 

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

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

тема: Поиск с постраничной навигацией с выбором checkbox
 
 автор: mnbvcxz11   (31.05.2011 в 17:07)   письмо автору
 
 

Форма
<form action="view_search11.php" method="post" name="form_s">
<input name="search" type="text" size="85" maxlength="40" />
<input class="search_b" name="submit_s" type="submit" value="Искать" />
<input type="checkbox" name="mini_img" <?php echo '$checked;' ?> id="checkbox"/>

</form>

view_search11.php
-----------------------------------------------------------------
<?php
$checked = isset($_POST['mini_img']) ? "checked='checked'" : null;?>
<? include ("blocks/bd.php");
session_start();
$checked = isset($_POST['mini_img']) ? "checked='checked'" : null;
if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
if (!isset($cat)) {$cat = 1;}

/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $cat)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
if (isset($_POST['submit_s11']))
{
$submit_s = $_POST['submit_s11'];
}

if (isset($_POST['search']))
{
$search = $_POST['search'];
}

if (isset($submit_s))
{
if (isset($_POST['mini_img11']))
{
$mini_img = $_POST['mini_img11'];
}

if(isset($_POST['mini_img11'])){

}
$result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND cat='$cat' AND `text` like '%$search%'");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$slovo = 'admin';
if (isset($_POST['mini_img'])){
$result = mysql_query("SELECT id,title,mini_img,text FROM data WHERE
`text` like '%$search%' AND `mini_img` Like='$slovo' AND cat='$cat' ORDER BY id desc LIMIT $start, $num ",$db);
} else
{
$result = mysql_query("SELECT id,title,mini_img,text FROM data WHERE `text` like '%$search%' AND cat='$cat' ORDER BY id desc LIMIT $start, $num ",$db);
}
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
$_SESSION['search'] = $search; // если $seach объявлен успешно
$session = $_SESSION['search'];

}

else
{
exit("<p>Вы обратились к файлу без необходимых параметров.</p>");
}




?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><? echo "Заметки по запросу - $search "; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" height="261" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="100%"> <? include ("fffff.php"); ?></td>
</tr>
<tr>
<td width="75%" height="109" align="left" valign="baseline">&nbsp;</p>

 
<table width="27%" border="0">

<tr>
<td><? include ("blocks/lefttd.php"); ?></td>
</tr>
</table>
<p>&nbsp;</p>
<p><?
if (!$result)
{
echo "<p>Запрос не выполнен. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);

do
{

$r = $myrow["rating"]/$myrow["q_vote"];
$r = intval($r);
printf ("<br><table align='center' class='post'>

<tr>
<td class='post_title'>
<a href='%s' target='_blank' width='155' height='103' border='0'><p class='post_name'><img class='mini' align='left' border-image='000000' <img src='%s' width='80' height='80' alt='' </a></p>
<a><p class='post_adds'>Дата: %s </p>
<p class='post_adds'> %s</p>
<p class='post_adds'><strong>Цена: %s</strong> </p></a></td>
</tr>

</table><br><br>",$myrow["mini_img"],$myrow["mini_img"],$myrow["text"], $r);



}
while ($myrow = mysql_fetch_array($result));
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=view_search11.php?cat='.$cat.'&page=1>Первая</a> | <a href=view_search11.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=view_search11.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=view_search11.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=view_search11.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=view_search11.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=view_search11.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=view_search11.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=view_search11.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

if($page + 5 <= $total) $page5right = ' | <a href=view_search11.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=view_search11.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=view_search11.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=view_search11.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=view_search11.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню если страниц больше одной

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}



}

else
{
echo "<p>Информация не найдена.</p>";
exit();
}

?> </p></td>
<td width="25%">&nbsp;</td>
</tr>



</tr>
</table>



Поиск с checkbox работает без навигации
Нужно с навигацией по страницам ??? Первую страницу выводит по запросу а последующие все подряд выводит

  Ответить  
 
 автор: lotanaen   (31.05.2011 в 17:17)   письмо автору
 
   для: mnbvcxz11   (31.05.2011 в 17:07)
 

в ссылки постраничного перехода добавьте нужный GET-параметр

  Ответить  
 
 автор: mnbvcxz11   (31.05.2011 в 17:24)   письмо автору
 
   для: lotanaen   (31.05.2011 в 17:17)
 

GET -параметр куда вставить ?

  Ответить  
 
 автор: Lotanaen   (31.05.2011 в 17:29)   письмо автору
 
   для: mnbvcxz11   (31.05.2011 в 17:24)
 

вот в эти ссылки например:

if($page - 5 > 0) $page5left = ' <a href=view_search11.php?cat='.$cat.'&page='. ($page - 5) .($param?"&param=$param":"").'>'. ($page - 5) .'</a> | ';

  Ответить  
 
 автор: mnbvcxz11   (31.05.2011 в 17:32)   письмо автору
 
   для: Lotanaen   (31.05.2011 в 17:29)
 

($param?"&param=$param":"").'>'. ($page - 5) .'</a> | ';
$param?---что означает

  Ответить  
 
 автор: Lotanaen   (31.05.2011 в 17:38)   письмо автору
 
   для: mnbvcxz11   (31.05.2011 в 17:32)
 

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

  Ответить  
 
 автор: Lotanaen   (31.05.2011 в 17:33)   письмо автору
 
   для: mnbvcxz11   (31.05.2011 в 17:24)
 

можно в checkbox значение value установить для удобства и его передавать в ссылка постраничных...

  Ответить  
 
 автор: mnbvcxz11   (31.05.2011 в 17:38)   письмо автору
 
   для: Lotanaen   (31.05.2011 в 17:33)
 

value установить ?
нужно переключатель сделать "если то" то

  Ответить  
 
 автор: Lotanaen   (31.05.2011 в 17:42)   письмо автору
 
   для: mnbvcxz11   (31.05.2011 в 17:38)
 

так checkbox как обычно и будет работать, только в переменной mini_img будет переданное вами значение value - с ним и при выводе формы работайте(установка/не установка флага) и при определении далее в скриптах... если флаг установлен то форма передаст value, если нет, то она пустая будет...
можно и новую переменную ввести...

  Ответить  
 
 автор: mnbvcxz11   (31.05.2011 в 18:00)   письмо автору
 
   для: Lotanaen   (31.05.2011 в 17:42)
 

exit("<p>Вы обратились к файлу без необходимых параметров.</p>");

на вторую перехожу пишет т.е. не ищет ?

  Ответить  
 
 автор: mnbvcxz11   (31.05.2011 в 18:09)   письмо автору
 
   для: mnbvcxz11   (31.05.2011 в 18:00)
 

поиск работает без навигации есть ли пример

  Ответить  
Rambler's Top100
вверх

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