Если задать в коде, допустим $stroka = "просвещение"; то находит и выводит все правильно.
Как мне теперь прикрутить ее к полю ввода?
Вот форма:
<form name="search" method="post">
<input id="input" size="60" name="stroka" type="text" value="">
<input type="submit" value="Начать поиск">
</form>
А вот PHP:
<?php
$count_per_page = 3;
$page = 1;
?>
<?php
// $stroka = '1'; задаю - ищет, не задано - выводит все.
$result = mysql_query('SELECT round(count(book_id)/' . $count_per_page . ') FROM book');
$counts = mysql_fetch_row($result);
$page_max = $counts[0];
if (!empty($_GET['page'])) {
$page = (int) $_GET['page'];
if ($page > $page_max)
$page = $page_max;
if ($page < 1)
$page = 1;
}
$result = mysql_query ('SELECT * FROM book WHERE book.book_id LIKE "%'.$stroka.'%"
OR book.name LIKE "%'.$stroka.'%" OR book.autor LIKE "%'.$stroka.'%"
OR book.izdat LIKE "%'.$stroka.'%" OR book.page LIKE "%'.$stroka.'%"
OR book.year LIKE "%'.$stroka.'%" OR book.money LIKE "%'.$stroka.'%"
OR book.description LIKE "%'.$stroka.'%"
LIMIT ' .(($page - 1) * $count_per_page). ', ' .$count_per_page);
$libr = mysql_num_rows($result);
if ($libr!==0){
$table = "<table>\n";
while ($row = mysql_fetch_assoc($result)){
$table .= "<tr>\n";
$table .= "<td>".$row['book_id']."</td>\n";
$table .= "<td>".$row['name']."</td>\n";
$table .= "<td>".$row['autor']."</td>\n";
$table .= "<td>".$row['izdat']."</td>\n";
$table .= "<td>".$row['description']."</td>\n";
$table .= "</tr>\n";
}
$table .= "</table>\n";
echo $table;
for ($i=1; $i<$page_max; ++$i) {
if ($i != $page) {
echo '<a href="?page=' . $i . '">' . $i . '</a> ';
}
else {
echo ''.$i.' ';
}
}
}
?>
Пробовал делать такую проверку в начале кода:
$stroka = '';
if (isset($_POST['stroka'])){
$stroka = strip_tags($_POST['stroka']);
}
$stroka = trim($stroka);
if (!empty($stroka)){
Перестает работать. Что не так?
Спустя 2 часа, 8 минут, 27 секунд (23.01.2010 - 03:45) dr_Lev написал(а):
По-моему с кодировкой нужно поработать... посмотри, какую строку получаешь...
P.S. Если в строке есть русские буквы и строка в UTF-8 то регулярка ereg("([\xD0-\xD1].){3,}",$text) вернет true,
P.S. Если в строке есть русские буквы и строка в UTF-8 то регулярка ereg("([\xD0-\xD1].){3,}",$text) вернет true,
Спустя 8 часов, 7 минут, 9 секунд (23.01.2010 - 11:53) Vok написал(а):
Нет, кодировка, к сожалению, ни при чем, первую страницу нормально все выводит, снимаю поиск, заранее задав $stroka, все работает. А так только первая страница показывается, а перехожу на другие - пусто. Может быть переменная не передается? Пробовал сессию прописать - не помогает.
Спустя 2 часа, 11 минут, 43 секунды (23.01.2010 - 14:04) Vok написал(а):
Ура! Два дня мучений позади!
Решение нашел. Оказалось: страница то обновляется, следовательно $stroka не переносится на новую страницу. Пробовал сессии - не работает. Подставил в форму поиска
Всем спасибо, тему можно закрывать.
Решение нашел. Оказалось: страница то обновляется, следовательно $stroka не переносится на новую страницу. Пробовал сессии - не работает. Подставил в форму поиска
name="stroka" value="<? $_GET['stroka']; ?>"и в ссылку добавил
?page=' . $i . '&stroka='.$stroka.'">Все! Теперь работает пагинатор, ну и названьеце, блин!
Всем спасибо, тему можно закрывать.