Здравствуйте! У меня возник вопрос по поводу постраничного вывода информации из базы данных! Я новичек в этом деле, поэтому прошу помощи у вас. Я нарыл вот такой скрипт: PHP: <?php function link_bar($page, $pages_count) { for ($j = 1; $j <= $pages_count; $j++) { // Вывод ссылки if ($j == $page) { echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> '; } else { echo ' <a style="color: #808000;" href='.$_server['php_self'].'?page='.$j.'>'.$j.'</a> '; } // Выводим разделитель после ссылки, кроме последней // например, вставить "|" между ссылками if ($j != $pages_count) echo '|'; } return true; } // Конец функции // Подключение к базе данных mysql_connect('localhost', 'root', 'pass') or die('error! Нет соединения с сервером mysql!'); mysql_select_db('libr') or die('error! Нет соединения с базой данных!'); // Подготовка к постраничному выводу $perpage = 3; // Количество отображаемых данных из БД if (empty($_get['page']) || ($_get['page'] <= 0)) { $page = 1; } else { $page = (int) $_get['page']; // Считывание текущей страницы } // Общее количество информации $count = mysql_numrows(mysql_query('select * from magaz')) or die('error! Записей не найдено!'); $pages_count = ceil($count / $perpage); // Количество страниц // Если номер страницы оказался больше количества страниц if ($page > $pages_count) $page = $pages_count; $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД // Вызов функции, для вывода ссылок на экран link_bar($page, $pages_count); // Вывод информации из базы данных echo '<p><b>Постраничный вывод информации</b></p>'; $result = mysql_query('select * from magaz limit '.$start_pos.', '.$perpage) or die('error!'); while ($row = mysql_fetch_array($result)) { echo '<p>'.$row['Nazvanie'].'</p>'; } ?> Проблема состоит в том, что не переходит на следующие страницы... Так все время и выводит только первые три записи. Помогите пожалуйста, что здесь не так?
Скрипт очень пригодился! выводит с MySQL все замечательно но есть одно "НО" -при выводе результата при условии $perpage = 4; // Количество отображаемых данных из БД моя таблица echo '<table border=\"1\" class=table cellspacing=\"1\" cellpadding=\"0\"> <tr align=center bgcolor="#CCCCCC"> <td width=40 height=66>#</td> <td width=178>Наименовании организации-претендента</td> <td width=121>Юридический адрес</td> <td width=105>Почтовый адрес</td> <td width=96>Должность руководителя</td> <td width=123>ФИО руководителя</td> <td width=107>Рабочий телефон</td> <td width=112>Мобильный телефон</td> <td width=118>Телефон факс</td> <td width=150>Адрес сайта</td> <td width=150>E-mail</td> <td width=150>Виды работ</td> <td width=150>Категория</td> </tr>'; это заголовок моей таблицы он считает ее за 1 строку! ТО ЕСТЬ результата 1го не хватает! на каждой странице! КАК РЕШИТЬ ПРОБЛЕМУ ЭТУ!
то я поспешил! она не причем!!!!!!!!! А ТЕРЯЕТЬСЯ одна строка при вывде результата на каждой странице
у меня в БД 8 строк! $perpage = 4; // Количество отображаемых данных из БД вывожу по 4 строки! а показывает 3 строки на каждой странице!
PHP: <?php function link_bar($page, $pages_count) { for ($j = 1; $j <= $pages_count; $j++) { // Вывод ссылки if ($j == $page) { echo ' <a style="color: red;" ><b>'.$j.'</b></a> '; } else { echo ' <a style="color: darkgreen;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> '; } // Выводим разделитель после ссылки, кроме последней // например, вставить "|" между ссылками if ($j != $pages_count) echo '|'; } return true; } // Конец функции // Подключение к базе данных mysql_connect('localhost', 'root', '') or die('error! Нет соединения с сервером mysql!'); mysql_select_db('anketa') or die('error! Нет соединения с базой данных!'); // Подготовка к постраничному выводу $perpage = 4; // Количество отображаемых данных из БД if (empty($_GET['page']) || ($_GET['page'] <= 0)) { $page = 1; } else { $page = (int) $_GET['page']; // Считывание текущей страницы } // Общее количество информации $count = mysql_numrows(mysql_query('select * from anketa')) or die('error! Записей не найдено!'); $pages_count = ceil($count / $perpage); // Количество страниц // Если номер страницы оказался больше количества страниц if ($page > $pages_count) $page = $pages_count; $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД // Вызов функции, для вывода ссылок на экран link_bar($page, $pages_count); // Вывод информации из базы данных $result = mysql_query('select * from anketa limit '.$start_pos.', '.$perpage) or die('error!'); while ($row = mysql_fetch_array($result)) { while(list($id, $company, $adress, $mail_adress, $name_dir, $fio_dir, $tel_dir, $mob_dir, $fax_dir, $www_adress, $email_dir, $about, $category) = mysql_fetch_row($result)) { echo " <tr align=center> <td>$name_dir</td> <td>$id</td> <td>$company</td> <td>$adress</td> <td>$mail_adress</td> <td>$fio_dir</td> <td>$tel_dir</td> <td>$mob_dir</td> <td>$fax_dir</td> <td>$www_adress</td> <td>$email_dir</td> <td>$category</td> <td>$about</td> </tr>\n"; } print "</table>\n"; print " Колличество записей : <b>$count</b>\n"; } ?>
я думаю что из-за этого условия PHP: while(list($id, $company, $adress, $mail_adress, $name_dir, $fio_dir, $tel_dir, $mob_dir, $fax_dir, $www_adress, $email_dir, $about, $category) = mysql_fetch_row($result)) {
Может стоит думать немного, хоть чуть-чуть? Посмотри внимательно, подумай, и скажи. PHP: <?php $result = mysql_query('select * from anketa limit '.$start_pos.', '.$perpage) or die('error!'); while ($row = mysql_fetch_array($result)) { while(list($id, $company, $adress, $mail_adress, $name_dir, $fio_dir, $tel_dir, $mob_dir, $fax_dir, $www_adress, $email_dir, $about, $category) = mysql_fetch_row($result)) { ?> Что тут лишнее?
извини дружище сам себя запутал вот оно что из-за PHP: while(list($id, $company, $adress, $mail_adress, $name_dir, $fio_dir, $tel_dir, $mob_dir, $fax_dir, $www_adress, $email_dir, $about, $category) = mysql_fetch_row($result)) { и PHP: echo " <tr align=center> <td>".$row['4']."</td> <td>".$row['0']."</td> <td>".$row['1']."</td> <td>".$row['2']."</td> <td>".$row['3']."</td> <td>".$row['5']."</td> <td>".$row['6']."</td> <td>".$row['7']."</td> <td>".$row['8']."</td> <td>".$row['9']."</td> <td>".$row['10']."</td> <td>".$row['12']."</td> <td>".$row['11']."</td> </tr>\n";