И меется php код вывода результатов поиска. Все Работает, [/b]НО если не находит результаты, то почему-то не пишет что по вашему... Пожалуйста скажите, где у меня ошибка. Заранее всем спасибо =) PHP: <?php // Сколько записей показывать на странице $perPage = 5; // получаем данные через $_POST if(isset($_REQUEST['search'])) { // подключаемся к базе include('php/connect.php'); $db = new db(); // никогда не доверяйте входящим данным! Фильтруйте всё! $word = mysql_real_escape_string($_REQUEST['search']); // Определим, сколько всего записей соответствуют запросу $sql = "SELECT COUNT(*) AS `total` FROM `planes` WHERE `name` LIKE '%{$word}%'"; $row = $db->select_list($sql); $row = each($row); $total = $row['value']['total']; // Всего страниц $pages = ceil($total / $perPage); // Запрошенная страница $page = isset($_REQUEST['page']) ? (int) $_REQUEST['page'] : 1; // Если такой страницы нет - значит кто-то балуется. if($page < 1 or $page > $pages) { header('HTTP/1.1 404 Not Found'); exit; } // Посчитаем с какой записи начать выборку $start = ($page - 1) * $perPage; // Получим соответствующие записи $sql = "SELECT * FROM `planes` WHERE `name` LIKE '%" . $word . "%' ORDER BY `dt_create` LIMIT {$start}, {$perPage}"; $row = $db->select_list($sql); if(count($row)) { $end_result = ''; foreach($row as $r) { // Выводим записи $end_result .= '<li class="grid_4"><a href="'. $r['link'].'"><img src="'. $r['mini_img'].'" alt="'. $r['name'].'" width="300" height="100"/></a>'; $end_result .= '<h3><a href="'. $r['link'].'">'. $r['name'].'</a></h3>'; $end_result .= '<span class="price"><strong>'. $r['dt_create'].'</strong> </span>'; $end_result .= '<p align="justify">'. $r['decription'].'</p>'; $end_result .= '<div><span><a href="#">Оф. сайт</a></span>'; $end_result .= '<span class="stars"></span>'; $end_result .= '<span><a href="'. $r['link'].'">Подробнее..</a></span></div></li>'; } // Ссылки на страницы (если всего одна страница, то ссылки показывать незачем) if($pages > 1) { $end_result .= '<div class="pages">'; for($i = 1; $i <= $pages; $i++) $end_result .= '<a href="?search=' . urldecode(stripslashes($word)) . '&page=' . $i . '">' . $i . '</a> '; $end_result .= '</div>'; } echo $end_result; } else { echo '<h2>По вашему запросу ничего не найдено</h2>'; } } ?>
Так, возможно я чего-то принципиально недопёр, но этот код должен быть вдвое короче. Как минимум. Иначе это говнокод (без обид). Схема должна быть такая: 1. Получение гет-пост переменных, фильтрация их во избежание инъекций, прочая обработка переменных. 2. Подключение к БД средствами php. 3. Нахождение результата через $query - $result. 4. Подсчет количества строк через mysql_num_rows() 5. Если строк 0, то сообщение об ошибке, если 1 или более строк, выводим их через цикл с использованием, например, mysql_fetch_row. Вуаля. Автору покурить: mysql_fetch_row
turrel я в php чайник, наверное по етому у меня и говнокод склеился =) Подскажи пожалуйста что поменять надобно?
PHP: <?php if($page < 1 or $page > $pages) { header('HTTP/1.1 404 Not Found'); exit; } Если записи не найдены, то $pages=0. А $page меньше единицы у тебя не может быть.