Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 11.03.2002, 11:05
advocat вне форума Посмотреть профиль Отправить личное сообщение для advocat Посетить домашнюю страницу advocat Найти все сообщения от advocat
  № 1  
advocat
 
Аватар для advocat

Регистрация: Feb 2001
Адрес: Киев
Сообщений: 649
Отправить сообщение для advocat с помощью ICQ
По умолчанию постраничный вывод

Люди кто-нибуть киньте или напишите код, просто сколько их уже перепробовал ...
мне нужен код с выводом страниц, тобишь напр.: 1 | 2 | 3
Просто без этого можна использовать лимит ... но это не то ...
Вобщем помогите скриптом !!!
__________________
заходите в гости
advocat, это не по професия - это диагноз!
Обычно в PHP обитаю ...

Старый 11.03.2002, 18:25
Самурай вне форума Посмотреть профиль Отправить личное сообщение для Самурай Найти все сообщения от Самурай
  № 2  
Самурай
Ветеран форума

Регистрация: Aug 2001
Адрес: /kiev.ua/butuzov
Сообщений: 3,045
Отправить сообщение для Самурай с помощью ICQ
Похожий скрипт я писал гдето месяца два назад. Он дома и работает (что удивляет)....



ТО что внизу написано за 17 минут...
возможны ошибки (как синтаксические так и орфоргафические...)
<?php
$user="pejone";
$pass="pejone";
$host="localhost";
$db="some";

mysql_connect($host, $user, $pass);
mysql_select_db($db);

$counter=mysql_num_rows(mysql_query("SELECT * FROM sometable"));

//узнаем на сколько страниц разбить вывод
$step="10";
$steps=$counter/$step;

if ( $steps == "0") {
echo (" 1 ");
}
else {

for ($n=0; $n <= $steps; $n++)
{
printf("<a href=show.php?id=$n> $n </a>" );
}
}
?>



а в файле show.php пишем

<?
$user="pejone";
$pass="pejone";
$host="localhost";
$db="some";


mysql_connect($host, $user, $pass);
mysql_select_db($db);

$counter=mysql_num_rows(mysql_query("SELECT * FROM sometable"));

$downmerg=$n*10-10;

$counttop=$n*10;
$more=$counter-$counttop;

if ($more <= "10")
{
$topmerg=$more;
}

elseif ($more > "10")
{
$topmerg=$n*10;
}

for ($i=$downmerg; $i <= $topmerg; $i++)
{
$data=mysql_fetch_array(mysql_query(" SELECT * FROM sometable WHERE id = '$i' "));

echo ("$data[somevalue]");

}

?>


если подробней то емейлом....

pejone@[NOTFORSPAMERS]svitonline.com

убери [NOTFORSPAMERS]....
__________________
...

Старый 11.03.2002, 19:08
[subway]design вне форума Посмотреть профиль Отправить личное сообщение для [subway]design Посетить домашнюю страницу [subway]design Найти все сообщения от [subway]design
  № 3  
[subway]design
 
Аватар для [subway]design

Регистрация: Oct 2001
Адрес: в Петербурге
Сообщений: 2,430
По умолчанию Если кучу записей разбиваем на паги, то...

...не согласен с идеей Пижона, насчет того, что режем исходя из кол-ва страниц. На практике необходимо исходить из кол-ва записей на одной странице. Допустим, гостевой книги.

Код:
$num=10;  // 10 записей на одну страницу, передается как параметр
$page=1;   // номер страницы, передается как параметр.

mysql_connect(...bla-bla-bla...
.mysql_select_db(..bla-bla-bla...) //коннектимся...

$query="SELECT name, msg, smth_else_field FROM yourtable";
$r=mysql_query($query);

$npages=1; //кол-во страниц (вычисляется ниже)
$counter=0;

while($counter<mysql_num_rows($r)){
$counter=$num*$npages;
$npages++;
}

$npages-=1; // избавляемся от лишнего значения, порожденного циклом.

if($page>$npages)$page=$npages; // Если просят "большую" страницу, то выдаем последнюю.
if($page<1)$page=1; // Если просят отрицательную страницу, то выдаем первую.

if($npages==1){ // у нас записей меньше чем $num, выдаем ВСЕ записи:
  $x=0;
  while($x<mysql_num_rows($r)){  //тут делаем что хотим, например просто print:
     print mysql_result($r,$x,'name');
     print mysql_result($r,$x,'msg');
     print mysql_result($r,$x,'smth_else_field');
     $x++;
  }
}elseif($page<=($npages-1)){ // У нас страница ПОЛНОСТЬЮ забита записями в кол-ве $num (последняя страница не обязательно)
  $x=$num*($page-1);
  while($x<$num*$page){  //тут делаем что хотим, например просто print:
     print mysql_result($r,$x,'name');
     print mysql_result($r,$x,'msg');
     print mysql_result($r,$x,'smth_else_field');
     $x++;
  }
}else{ // $page - это последняя страница, там записей скорее всего меньше $num:
  $x=$num*($page-1);
  while($x<mysql_num_rows($r)){  //тут делаем что хотим, например просто print:
     print mysql_result($r,$x,'name');
     print mysql_result($r,$x,'msg');
     print mysql_result($r,$x,'smth_else_field');
     $x++;
  }
}

Вроде так, ошибки не исключены, т.к. написано за 11 минут.
__________________
subway.net.ru

Старый 11.03.2002, 22:14
juggy вне форума Посмотреть профиль Отправить личное сообщение для juggy Посетить домашнюю страницу juggy Найти все сообщения от juggy
  № 4  
juggy
 
Аватар для juggy

Регистрация: Feb 2001
Адрес: LJ/~aleshru
Сообщений: 4,778
Отправить сообщение для juggy с помощью ICQ Отправить сообщение для juggy с помощью MSN Отправить сообщение для juggy с помощью Yahoo Отправить сообщение для juggy с помощью Skype™
хех. А просто текст? Если не из mysql?
__________________
Что за дурь? 50 символов в подписи!?

Старый 12.03.2002, 00:40
nagash вне форума Посмотреть профиль Отправить личное сообщение для nagash Посетить домашнюю страницу nagash Найти все сообщения от nagash
  № 5  
nagash
Ветеран форума
 
Аватар для nagash

Регистрация: Jul 2001
Адрес: Москва
Сообщений: 3,088
Отправить сообщение для nagash с помощью ICQ
Код:
function getPages($total, $page, $link, $perpage) {
    $mpp = $perpage;
    $prev_page = $page - 1; 
    $next_page = $page + 1; 

    if ($total <= $mpp) $pages = 1; 
    elseif($total % $mpp == 0) $pages = $total / $mpp;
    else $pages = $total / $mpp + 1;
    $pages = (int) $pages;

    $s_pages    = $page<10 ? 1 : floor($page / 10) * 10;
    $e_pages    = $page + 9;

    if ($e_pages > $pages) {
        $e_pages = $pages;
    }

    $s = "";

    if($prev_page != 0) $s = "<a href=\"".$link."page=1\">&lt;&lt;</a> \n";
    if($prev_page) {
        $s .= "<a href=\"".$link."page=$prev_page\">&lt;</a> \n";
    }

    for($i=$s_pages;$i<=$e_pages;$i++) {
        if ($i != $page) { 
            $s .= "<a href=\"".$link."page=$i\">$i</a> \n"; 
        } elseif ($i != 1) {
            $s .= " <b>$i</b> "; 
        } elseif ($page != $pages) {
            $s .= " <b>1</b> ";
        }
    }
    if($page != $pages) {
        $s .= "<a href=\"".$link."page=$next_page\">&gt;</a> \n";
        $s .= "<a href=\"".$link."page=$pages\">&gt;&gt;</a> \n";
    }

    return $s;
}

--------------------------------------------------------------------------------
а вызывать, например 

$print_pages = getPages($total, $page, "$PHP_SELF?param1=1& param2=2&", $pp); 
где $total - всего записей, $page - текущая страница, $pp - кол-во записей на страницу.

Старый 12.03.2002, 00:40
advocat вне форума Посмотреть профиль Отправить личное сообщение для advocat Посетить домашнюю страницу advocat Найти все сообщения от advocat
  № 6  
advocat
 
Аватар для advocat

Регистрация: Feb 2001
Адрес: Киев
Сообщений: 649
Отправить сообщение для advocat с помощью ICQ
2 Pejone и [subway]design : Спасибки ... попробую, будут проблеммы скажу, просто совсем меня уже достали на работе и маловато времени остается

2 juggy: Насколько я помню, то постраничный вывод из тхт расматривался отдельным топиком, но там все проще, и этот скрипт (из тхт знаю давно ...)
__________________
заходите в гости
advocat, это не по професия - это диагноз!
Обычно в PHP обитаю ...

Старый 12.03.2002, 03:35
nagash вне форума Посмотреть профиль Отправить личное сообщение для nagash Посетить домашнюю страницу nagash Найти все сообщения от nagash
  № 7  
nagash
Ветеран форума
 
Аватар для nagash

Регистрация: Jul 2001
Адрес: Москва
Сообщений: 3,088
Отправить сообщение для nagash с помощью ICQ
у меня как бы немного поменьше код получился... =)
Код:
// ÇÀÏÐÎÑ Â ÌÞÑÊË È ÏÎÄÑ×¨Ò ÎÁÙÅÃÎ ÐÅÇÓËÜÒÀÒÀ
$result = mysql_query($query);
$number = mysql_numrows($result);

// ÂÛÂÎÄ ÑÒÐÎÊÈ ÄËß ËÈÑÒÀÍÈß
if (!isset($page)) {
	$page=1;
}
$cikl = ceil($number / 5);
echo "<div align=left class=casino>found $number casinos<br>Pages: ";
for ($i=1;$i<=$cikl;$i++) {
	if ($page == $i) {
		echo "<b>$i</b> ";
	} else {
		echo "<a href='.?&page=".$i."'>$i</a> ";
	}
}
echo "</div>";

// ÇÀÏÐÎÑ Â ÌÞÑÊË ÇÀ ÏßÒÜÞ ÐÅÇÓËÜÒÀÒÀÌÈ
$page = ($page-1)*5;
$query .= " LIMIT $page,5";
$result = mysql_query($query);
$number = mysql_numrows($result);

// ÂÛÂÎÄ ÑÀÌÈÕ ÊÀÇÈÍÎ
for ($i=0;$i<$number;$i++){
	$info =  mysql_result($result,$i,"info");
	echo $i." - ".$info."<br>";
}


Последний раз редактировалось nagash; 12.03.2002 в 03:41.
Старый 12.03.2002, 03:51
nagash вне форума Посмотреть профиль Отправить личное сообщение для nagash Посетить домашнюю страницу nagash Найти все сообщения от nagash
  № 8  
nagash
Ветеран форума
 
Аватар для nagash

Регистрация: Jul 2001
Адрес: Москва
Сообщений: 3,088
Отправить сообщение для nagash с помощью ICQ
ох лутше бы не постил этот код...
вобщем у кого будут вопросы спрашивайте... =)

Создать новую тему   Часовой пояс GMT +4, время: 06:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.