[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных и генерация страниц
philcrosoft
В общем у меня вывод базы данных на страницу идёт следующим образом

<?php

// Connects to your Database

mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("users") or die(mysql_error()) ;

//Retrieves data from MySQL

$data = mysql_query("SELECT * FROM users ORDER BY input_date DESC") or die(mysql_error());

//Puts it into an array

while($info = mysql_fetch_array( $data )) {


//Outputs data

Echo $info['login'].'<p></p>';
Echo $info['email'].'<hr>';
}

?>


Как сделать так, чтобы на странице отображалось 10 зарегистрированных в базе, а далее кнопочки страниц, где продолжение списка! (везде по 10 значений)
Спасибо!



Спустя 9 минут, 27 секунд (31.10.2010 - 16:02) DmitryOpalev написал(а):

Спустя 14 минут, 36 секунд (31.10.2010 - 16:16) philcrosoft написал(а):
Да оно что надо ))), но для меня новичка тут разбору полётов на месяц )))

Спустя 28 минут, 15 секунд (31.10.2010 - 16:45) inpost написал(а):
philcrosoft
Не страшно, через месяц умным выйдешь. Если учиться не хочешь, то на сайт Попова, у него там много всякой туфты: http://ruseller.com

Спустя 11 минут, 29 секунд (31.10.2010 - 16:56) philcrosoft написал(а):
ну я так и понял, что постраничный вывод данных это нелегко ))) ... ладно вот на праздничных днях потыкаю ))) ... если есть варианты с моим кодом постите тут ... буду только рад!

Спустя 1 минута, 43 секунды (31.10.2010 - 16:58) DmitryOpalev написал(а):
А меня бесит попов... типа такой умный сидит, рассказывает...
Сугубо мое мнение smile.gif

Спустя 7 минут, 54 секунды (31.10.2010 - 17:06) inpost написал(а):
DmitryOpalev
Если бы не он, не было бы меня тут. =)

Спустя 12 минут, 36 секунд (31.10.2010 - 17:18) philcrosoft написал(а):
оуууу biggrin.gif харош флудить тут ))) ... лучше б код мне сделали с постраничным выводом данных rolleyes.gif ph34r.gif

Спустя 5 минут, 12 секунд (31.10.2010 - 17:24) DmitryOpalev написал(а):
Я ж дал)))
Там все просто))
Устанавливается функция LIMIT, по ней определяется, какие данные выводить...

Спустя 1 минута, 49 секунд (31.10.2010 - 17:25) philcrosoft написал(а):
Цитата (DmitryOpalev @ 31.10.2010 - 14:24)
Я ж дал)))
Там все просто))
Устанавливается функция LIMIT, по ней определяется, какие данные выводить...

кому как ))) ... мне не очень то легко разобраться куда чего вставлять )))

Спустя 1 минута, 45 секунд (31.10.2010 - 17:27) DmitryOpalev написал(а):
С базами работал когда-нибудь?

Спустя 10 минут, 56 секунд (31.10.2010 - 17:38) philcrosoft написал(а):
Цитата (DmitryOpalev @ 31.10.2010 - 14:27)
С базами работал когда-нибудь?

да вот сейчас и работаю делаю - и учусь на том, что делаю )

Спустя 3 часа, 11 минут, 58 секунд (31.10.2010 - 20:50) aH6y написал(а):
inpost
И меня тоже б небыло)
philcrosoft
Воть и воть (тут очень всё просто и понятно)

Спустя 5 минут, 39 секунд (31.10.2010 - 20:56) philcrosoft написал(а):
спасибо почитаю попробую сделать ))) если будет не получатся, то отпишусь тут )

Спустя 20 минут, 45 секунд (31.10.2010 - 21:16) philcrosoft написал(а):
Вот сделал так, но не работает (((, не переходит по страницам и не упорядочивает данные по дате регистрации, что касается ссылок то не могу понять как сформировать congig.php

include "config.php";  
и всё ли надо делать в одном php

<?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); // На всякий случай smile.gif
// Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц

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(mysql_error()) ;
mysql_select_db("users") or die(mysql_error()) ;

// Подготовка к постраничному выводу
$perpage = 10; // Количество отображаемых данных из БД
if (empty($_get['page']) || ($_get['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_get['page']; // Считывание текущей страницы
}
// Общее количество информации
$count = mysql_numrows(mysql_query('select * from users')) 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 users limit '.$start_pos.', '.$perpage) or die('error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['url'].'</p>';
}

?>

Спустя 6 часов, 3 минуты, 32 секунды (1.11.2010 - 03:20) vital написал(а):
Брр. Простыню не смотрел.
C постраничным выводом все просто.
SELECT чтонадо FROM окуданадо WHERE условие LIMIT с_какой_строки, сколько_штук.

И дальше выводите список страниц, например так
function LeftRight($records,$r_start,$URL,$inpage=20)
{
$str="";
if($records<=$inpage) return;
if($r_start!=0)
{
$str.="<a href=".$URL."0>«</a> ";
$str.="<a href=$URL".($r_start-1).">‹</a> ";
}else $str.="« ‹ ";
#Считаем количество страниц
if($records%$inpage==0) $add=0; else $add=1;
$page_count=(intval($records/$inpage)+$add);
#Ссылки на первые 10 страниц, начиная с первой
if($r_start<5)
{
$sstart=0;
$send=10;
}
#Ссылки на 10 страниц, влево и вправо по 5, относительно текущей
if($r_start>=5 and $r_start<=($page_count-5))
{
$sstart=$r_start-5;
$send=$r_start+5;
}
#Ссылки на последние 10 страниц
if($r_start>($page_count-5))
{
$sstart=$page_count-10;
$send=$page_count;
}
if($sstart<0) $sstart=0;
if($send*$inpage>$records) $send=$page_count;
$str.= ' | ';
#Выводим список ссылок
for($i=$sstart;$i<$send;$i++)
{
if($i==$r_start) $str.="<b>".($i+1)."</b> ";
else $str.="<a href=$URL".($i)."><u><b>".($i+1)."</b></u></a> ";
}
if($r_start+1<$page_count)
{
$str.="<a href=$URL".($r_start+1).">›</a>";
$str.=" <a href=$URL".($page_count-1).">»</a>";
} else $str.="› »";
return($str);
}

Выводит красивую строчку со ссылками на страницы.
* $records - всего записей
* $r_start - текущая страница
* $URL - адрес, заканчивающийся на "="
* $inpage - записей на страницу
тут есть еще варианты. Не сочтите за рекламу.

Спустя 3 минуты, 23 секунды (1.11.2010 - 03:23) vital написал(а):
А, забыл. Количество записей всего стоит получать, добавив в запрос SQL_CALC_FOUND_ROWS
Что это загуглите)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.