скрипт работает выводит на экран строки с базы, посдсчитывает колличство страниц
но проблема в том, что на каждой странице выводитятся такие же строки как и на первой странице.
подскажите в чем может быть проблема и как ее рашить ?
<?php
function yandex_link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - это количество отображаемых ссылок;
// нагляднее будет, когда это число будет парное
// Если страница всего одна, то вообще ничего не выводим
if ($pages_count == 1) return false;
$sperator = ' '; // Разделитель ссылок; например, вставить "|" между ссылками
// Для придания ссылкам стиля
$style = 'style="color: #808000; text-decoration: none;"';
$begin = $page - intval($show_link / 2);
unset($show_dots); // На всякий случай :)
// Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц
if ($pages_count <= $show_link + 1) $show_dots = 'no';
// Вывод ссылки на первую страницу
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_server['php_self'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
{
$i = $begin + $j; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл для того,
// чтобы количество ссылок было постоянным
if ($i < 1) continue;
// Подобное находится в верхнем цикле
if (!isset($show_dots) && $begin > 1) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
// Номер ссылки перевалил за возможное количество страниц
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
// Если номер ссылки не равен кол. страниц и это не последняя ссылка
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
// Вывод "..." в конце
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
// Вывод ссылки на последнюю страницу
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$pages_count.'> >| </a>';
}
return true;
} // Конец функции
// Подключение к базе данных
mysql_connect('localhost', 'root', '') or die('error! Нет соединения с сервером mysql!');
mysql_select_db('data_base') or die('error! Нет соединения с базой данных!');
// Подготовка к постраничному выводу
$perpage = 10; // Количество отображаемых данных из БД
if (empty($_get['page']) || ($_get['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_get['page']; // Считывание текущей страницы
}
// Общее количество информации
$count = mysql_numrows(mysql_query('select * from table')) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вызов функции, для вывода ссылок на экран
yandex_link_bar($page, $count, $pages_count, 10);
// Вывод информации из базы данных
echo '<p><b>Постраничный вывод информации</b></p>';
$result = mysql_query('select * from table limit '.$start_pos.', '.$perpage) or die('error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['some_field'].'</p>';
}
?>
Спустя 5 минут, 52 секунды (26.01.2011 - 15:34) Evilsoul написал(а):
Первая проблема в коде, вот нормальный навигатор.
А вторая проблема в том что стартовая позиция не меняется для запроса.
Проверь так:
А вторая проблема в том что стартовая позиция не меняется для запроса.
Проверь так:
if ($page > $pages_count) $page = $pages_count;
echo $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
Спустя 6 минут, 36 секунд (26.01.2011 - 15:41) quickxyan написал(а):
походу переменная $start_pos не меняеться. но в листинге вроде меняеться
Спустя 1 минута, 24 секунды (26.01.2011 - 15:42) quickxyan написал(а):
Evilsoul, там выше переменной присваиваеться значение из гет-переменной
Спустя 6 минут, 1 секунда (26.01.2011 - 15:48) Evilsoul написал(а):
quickxyan
если бы $start_pos меняло значение, то думаю вопроса не было бы.
$_server,$_get - вот эти вещи пишутся заглавными буквами, может в этом проблема, замени на $_SERVER, $_GET
если бы $start_pos меняло значение, то думаю вопроса не было бы.
$_server,$_get - вот эти вещи пишутся заглавными буквами, может в этом проблема, замени на $_SERVER, $_GET
Спустя 1 час, 18 минут, 8 секунд (26.01.2011 - 17:07) quickxyan написал(а):
кстати да) я тут недавно нижний прочерк потерял так еле нашелся))))))))0
Спустя 23 минуты, 34 секунды (26.01.2011 - 17:30) began написал(а):
Цитата (Evilsoul @ 26.01.2011 - 12:34) |
Первая проблема в коде, вот нормальный навигатор. А вторая проблема в том что стартовая позиция не меняется для запроса. Проверь так: if ($page > $pages_count) $page = $pages_count; |
спасибо за подсказку Тут реально рабочий Пагинатор.
Спустя 1 час, 4 минуты, 50 секунд (26.01.2011 - 18:35) began написал(а):
нашел рабочий скрипт вывода данных из MySQL
На экран выводятся строки
бла бла бла
бла бла бла
бла бла бла
посоветуйте новичку что добавить в код что бы строки выводились как ссылки с нижним подчеркиванием. то есть так
<a href="http://site/бла_бла_бла">бла бла бла</a>
Желательно с примером , что на что заменить
Спасибо
вот код
На экран выводятся строки
бла бла бла
бла бла бла
бла бла бла
посоветуйте новичку что добавить в код что бы строки выводились как ссылки с нижним подчеркиванием. то есть так
<a href="http://site/бла_бла_бла">бла бла бла</a>
Желательно с примером , что на что заменить
Спасибо
вот код
<?php
/**
* Database server.
* Сервер БД.
*/
define('IRB_DBSERVER', 'localhost');
/**
* Database user.
* Пользователь БД
*/
define('IRB_DBUSER', 'root');
/**
* Database password.
* Пароль БД
*/
define('IRB_DBPASSWORD', '');
/**
* Database name.
* Название базы
*/
define('IRB_DATABASE', 'basa');
/**
* Connection and installation of chaeset of connection
* Подключение и установка кодировок соединения
*/
mysql_connect( IRB_DBSERVER, IRB_DBUSER, IRB_DBPASSWORD );
mysql_select_db( IRB_DATABASE);
// Количество строк на странице
$num = 50;
/**
* Generates the navigation menu
* @param int $count, $page
* @return string
*/
function createMenu($count, $page)
{
$menu = '';
// Если страниц меньше 13, оставляем все по дефолту.
if($count < 13)
{
$i = 1;
$cnt = $count;
}
else
{
if($page < 6)
{ // Если текущая страница в диапазоне от 1 до 5, выводим первые 10 ссылок
$i = 1;
$cnt = 10;
}
elseif($page >= $count - 5)
{ // Если текущая страница на границе диапазона, или вышла за неё, показываем 10 последних
$i = $count - 10;
$cnt = $count;
}
else
{ // В ином случае показываем 11 страниц: текущую, 5 слева от неё и 5 справа.
$i = $page - 5;
$cnt = $count;
}
// Обрезаем меню
if($count - $i > 10)
$cnt = $i + 10;
}
// Формируем меню
while($i <= $cnt)
{
if($i == $page)
$menu .= '<b>'. $i .'</b> ';
else
$menu .= '<a href="?page='. $i .'">'. $i .'</a> ';
$i++;
}
return $menu;
}
// Принимаем номер требуемой страницы
$page = !empty($_GET['page']) ? (int)$_GET['page'] : 1;
// Считаем количество строк в таблице и делим на заданное. Получится количество страниц
$res = mysql_query("SELECT COUNT(*) AS `cnt` FROM `table`");
$count = (mysql_result($res, 0) / $num);
// Формируем вывод
$res = mysql_query("SELECT * FROM `table` LIMIT ". (($page - 1) * $num) .", ". $num);
$table = "<table width=\"50%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n";
if(mysql_num_rows($res) > 0)
while($row = mysql_fetch_assoc($res))
{
$table .= "<tr>\n<td>\n\t". $row['text']. "\n</td>\n</tr>\n";
}
$table .= "</table>\n";
$table = str_replace(".","","$table");
echo $table;
echo createMenu($count, $page);
?>
Спустя 3 минуты, 34 секунды (26.01.2011 - 18:39) Evilsoul написал(а):
Цитата |
нашел рабочий скрипт вывода данных из MySQL |
Интересно, где же ты его нашел?:)
$table .= "<tr>\n<td>\n\t<a href=\"http://site/бла_бла_бла\">". $row['text']. "</a>\n</td>\n</tr>\n";
Спустя 5 минут, 49 секунд (26.01.2011 - 18:44) began написал(а):
Цитата (Evilsoul @ 26.01.2011 - 15:39) | ||
Интересно, где же ты его нашел?:) $table .= "<tr>\n<td>\n\t<a href=\"http://site/бла_бла_бла\">". $row['text']. "</a>\n</td>\n</tr>\n"; |
С вашей помощью уважаемый Evilsoul
Спустя 20 минут, 47 секунд (26.01.2011 - 19:05) began написал(а):
как сделать что бы данные выводились с конца таблицы на первую страницу.? Данные все время будут добавляться и получается что все свежее будет на последних страницах
Спустя 16 минут, 37 секунд (26.01.2011 - 19:22) twin написал(а):
А это зачем?
$table = str_replace(".","","$table");
Спустя 7 минут, 31 секунда (26.01.2011 - 19:29) began написал(а):
Цитата (twin @ 26.01.2011 - 16:22) |
А это зачем?$table = str_replace(".","","$table"); |
в строках не нужный точки удаляет
Спустя 1 день, 3 часа, 10 минут, 38 секунд (27.01.2011 - 22:40) began написал(а):
как сделать что бы данные выводились с конца таблицы на первую страницу.? Данные все время будут добавляться и получается что все свежее будет на последних страницах
Спустя 19 минут (27.01.2011 - 22:59) Evilsoul написал(а):
в запросе ORDER BY DESC
Спустя 28 минут, 14 секунд (27.01.2011 - 23:27) began написал(а):
Цитата (Evilsoul @ 27.01.2011 - 19:59) |
в запросе ORDER BY DESC |
а можно с примером что на что поменять или добавить ?
в php не шарю вообще. хотелось бы сайт обновить а тут все самое свежее на последних страницах
Спустя 47 минут, 46 секунд (28.01.2011 - 00:15) inpost написал(а):
Если не разбираетесь, обратитесь к профессионалу за помощью. Только услуга денег будет стоить...
Спустя 29 минут, 59 секунд (28.01.2011 - 00:45) began написал(а):
Цитата (inpost @ 27.01.2011 - 21:15) |
Если не разбираетесь, обратитесь к профессионалу за помощью. Только услуга денег будет стоить... |
отличный ответ
Тут форум для начинающих? или freelancer?
Спустя 14 минут, 32 секунды (28.01.2011 - 00:59) Evilsoul написал(а):
began
для начинающих, которые учатся и сами делают.
для начинающих, которые учатся и сами делают.
Спустя 19 минут, 15 секунд (28.01.2011 - 01:19) began написал(а):
Цитата (Evilsoul @ 27.01.2011 - 21:59) |
began для начинающих, которые учатся и сами делают. |
На примерах легче учиться. не так ли?
Спустя 1 час, 16 минут, 30 секунд (28.01.2011 - 02:35) inpost написал(а):
began
Примеры в книжках, тут работаем с практикой. Ты показываешь код или просишь подсказать. Тебе ответ дали, ищешь примеры в справочниках и книгах, мы лишь помогаем найти направление, само же решение должно всегда исходить от тебя.
Примеры в книжках, тут работаем с практикой. Ты показываешь код или просишь подсказать. Тебе ответ дали, ищешь примеры в справочниках и книгах, мы лишь помогаем найти направление, само же решение должно всегда исходить от тебя.
Спустя 7 минут, 16 секунд (28.01.2011 - 02:42) Админ написал(а):
чувак на изучение пхп каждый местный убил туеву хучу времени - а ты не хочешь своё время тратить просишь сделать за тебя - ты ради интереса пошарься по форумам со схожей тематикой, там тебя сразу пошлют