Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » постраничная навигация mysql, php

Ответить
Настройки темы
постраничная навигация mysql, php

Аватара для dima1981

Ветеран


Сообщения: 512
Благодарности: 23

Профиль | Отправить PM | Цитировать


PHP код: Выделить весь код

<?

$db 
mysql_connect("localhost","root","***");
mysql_select_db("rp"$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
if (
$_POST[m_o] && $_POST[m_d]){ 
      
$num 2;   
// Текущая страница 
$page=$_GET['page'];   
// Общее число сообщений 
$result mysql_query('SELECT * FROM rt WHERE m_o="'.$_POST[m_o].'" AND m_d="'.$_POST[m_d].'"');  
$posts mysql_num_rows($result);   
// Общее число страниц   
$total intval(($posts 1) / $num) + 1;   
// Начальная позиция отсчета 
$page intval($page);   
// Если $page отрицательно то, переходим на первую страницу 
if(empty($page) or $page 0$page 1;   
  if(
$page $total$page $total;   
// С какого номера начать выводить сообщения 
$start $page $num $num;   
// Вывод с $start 
$result mysql_query('SELECT * FROM rt WHERE m_o="'.$_POST[m_o].'" AND m_d="'.$_POST[m_d].'" LIMIT $start, $num');   

else if (
$_POST[m_o] && !$_POST[m_d]) { 
      
$num 2;   
// Текущая страница 
$page=$_GET['page'];   
// Общее число сообщений 
$result mysql_query('SELECT * FROM rt WHERE m_o="'.$_POST[m_o].'"');   
$posts mysql_num_rows($result);   
// Общее число страниц   
$total intval(($posts 1) / $num) + 1;   
// Начальная позиция отсчета 
$page intval($page);   
// Если $page отрицательно то, переходим на первую страницу 
if(empty($page) or $page 0$page 1;   
  if(
$page $total$page $total;   
// С какого номера начать выводить сообщения 
$start $page $num $num;   
// Вывод с $start 
$result mysql_query('SELECT * FROM rt WHERE m_o="'.$_POST[m_o].'" LIMIT $start, $num');   

else if ( 
$_POST[m_d] && !$_POST[m_o] ){ 
      
$num 2;   
// Текущая страница 
$page=$_GET['page'];   
// Общее число сообщений 
$result mysql_query('SELECT * FROM rt WHERE m_d="'.$_POST[m_d].'"');   
$posts mysql_num_rows($result);   
// Общее число страниц   
$total intval(($posts 1) / $num) + 1;   
// Начальная позиция отсчета 
$page intval($page);   
// Если $page отрицательно то, переходим на первую страницу 
if(empty($page) or $page 0$page 1;   
  if(
$page $total$page $total;   
// С какого номера начать выводить сообщения 
$start $page $num $num;   
// Вывод с $start 
$result mysql_query('SELECT * FROM rt WHERE m_d="'.$_POST[m_d].'" LIMIT $start, $num');   

else { 
   
$num 2;   
// Текущая страница 
$page=$_GET['page'];   
// Общее число сообщений 
$result mysql_query('SELECT * FROM rt');   
$posts mysql_num_rows($result);   
// Общее число страниц   
$total intval(($posts 1) / $num) + 1;   
// Начальная позиция отсчета 
$page intval($page);   
// Если $page отрицательно то, переходим на первую страницу 
if(empty($page) or $page 0$page 1;   
  if(
$page $total$page $total;   
// С какого номера начать выводить сообщения 
$start $page $num $num;   
// Вывод с $start 
$result mysql_query("SELECT * FROM rt LIMIT $start, $num");   

while ( 
$abc mysql_fetch_row($result))
{
echo (
"$abc[0]  | $abc[1]");
}
if (
$page != 1$pervpage '<a href= zt.php?page=1><<</a>   
                               <a href= zt.php?page='
. ($page 1) .'><</a> ';   
// Нужны ли стрелки вперед   
if ($page != $total$nextpage ' <a href= zt.php?page='. ($page 1) .'>></a>   
                                   <a href= zt.php?page=' 
.$total'>>></a>';   

// Стр. с обоих краев 
if($page 0$page2left ' <a href= zt.php?page='. ($page 2) .'>'. ($page 2) .'</a> | ';   
if(
$page 0$page1left '<a href= zt.php?page='. ($page 1) .'>'. ($page 1) .'</a> | ';  
if(
$page <= $total$page2right ' | <a href= zt.php?page='. ($page 2) .'>'. ($page 2) .'</a>';   
if(
$page <= $total$page1right ' | <a href= zt.php?page='. ($page 1) .'>'. ($page 1) .'</a>'

// Вывод 
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage
mysql_close($db);
?>

Скажите пожалуйста, почему у меня тут всю таблицу постранично хорошо показывает, но когда задан поиск по базе mysql то не показывает, понимаю, что вот в этом php запросе или строке, что то не так $result = mysql_query('SELECT * FROM rt WHERE m_d="'.$_POST[m_d].'" LIMIT $start, $num');
но, что кавычки нужны но где или как тут сделать двойные кавычки читаемые браузером нормально, как тут $result = mysql_query("SELECT * FROM rt LIMIT $start, $num"); ?
Заранее спасибо.

-------
не уверен, что знаешь наверняка, говори об этом заблаговремено )


Отправлено: 10:16, 04-11-2008

 

Аватара для dima1981

Ветеран


Сообщения: 512
Благодарности: 23

Профиль | Отправить PM | Цитировать


скоро отпишусь мускл не соединяется со скриптами и вообщем спасибо всем, мне не удобно за то, что не понимаю и при всем уважении не та тема чтобы так растягивать, пойду на поиски получу нормальный, работающий код напишу тут, для завершения темы.

Пойду короче где то код скачивать, не получилось, не так, не сяк, не эдк.
мог бы всю тему удалить удалил бы, столько тут понаписанно мною тормозом, всем счастливо и спсб

-------
не уверен, что знаешь наверняка, говори об этом заблаговремено )


Последний раз редактировалось dima1981, 07-11-2008 в 00:33.


Отправлено: 18:34, 06-11-2008 | #31



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для dima1981

Ветеран


Сообщения: 512
Благодарности: 23

Профиль | Отправить PM | Цитировать


PHP код: Выделить весь код

<?

$db 
mysql_connect("localhost","root","***");
mysql_select_db("rp"$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$m_o=$_GET[m_o];
$m_d=$_GET[m_d];
if (
$_GET[m_o] && $_GET[m_d])

  
$num 5;
  
$page=$_GET['page'];
  
$result mysql_query("SELECT * FROM rt WHERE m_o='$m_o' AND m_d='$m_d'");  
  
$posts mysql_num_rows($result); 
  
$total intval(($posts 1) / $num) + 1;
  
$page intval($page);
if(empty(
$page) or $page 0$page 1;   
  if(
$page $total$page $total;
  
$start $page $num $num;
  
$result mysql_query("SELECT * FROM rt WHERE m_o='$m_o' AND m_d='$m_d' LIMIT $start, $num");   

else if (
$_GET[m_o] && !$_GET[m_d]) { 
  
$num 5;
  
$page=$_GET['page'];
  
$result mysql_query("SELECT * FROM rt WHERE m_o='$m_o'");   
  
$posts mysql_num_rows($result);
  
$total intval(($posts 1) / $num) + 1;
  
$page intval($page);
if(empty(
$page) or $page 0$page 1;   
  if(
$page $total$page $total;
  
$start $page $num $num;
  
$result mysql_query("SELECT * FROM rt WHERE m_d='$m_o' LIMIT $start, $num");

else if ( 
$_GET[m_d] && !$_GET[m_o] ){ 
  
$num 5;
  
$page=$_GET['page'];
  
$result mysql_query("SELECT * FROM rt WHERE m_d='$m_d'");
  
$posts mysql_num_rows($result);
  
$total intval(($posts 1) / $num) + 1;
  
$page intval($page);
if(empty(
$page) or $page 0$page 1;   
  if(
$page $total$page $total;
  
$start $page $num $num;
  
$result mysql_query("SELECT * FROM rt WHERE m_d='$m_d' LIMIT $start, $num");
}
else { 
  
$num 5;
  
$page=$_GET['page'];
  
$result mysql_query('SELECT * FROM rt');
  
$posts mysql_num_rows($result);
  
$total intval(($posts 1) / $num) + 1;
  
$page intval($page);
if(empty(
$page) or $page 0$page 1;   
  if(
$page $total$page $total;
  
$start $page $num $num;
  
$result mysql_query("SELECT * FROM rt LIMIT $start, $num");   
echo ( 
"<center><h4>Не был сделан запрос, выведена информация по всей базе.</h4></center>");

while ( 
$abc mysql_fetch_row($result))
{
?>

<table><tr><td><?php $abc[0?></td><td><?php $abc[1?></td></tr></table>  <!-- вывод данных в браузер -->

<?php
}
if (
$page != 1$pervpage '<a href="zt.php?page='. (1) .'&m_o='$m_o .'&m_d='$m_d .'"><<</a>   
                               <a href="zt.php?page='
. ($page 1) .'&m_o='$m_o .'&m_d='$m_d .'"><</a> ';
if (
$page != $total$nextpage ' <a href="zt.php?page='. ($page 1) .'&m_o='$m_o .'&m_d='$m_d .'">></a>   
                                   <a href= zt.php?page=' 
.$total'>>></a>';
echo (
"<br><div align='center'>$pervpage $page2left $page1left  $page $page1right $page2right $nextpage</div>");
echo (
"<br><br><div align='center'>Всего страниц по запросу $total</div>");
mysql_close($db);
?>

Походу полностью рабочий код, только с безопасностью не знаю на сколько, хорошо тут но страницы и считает, и отображает, и показывает, как надо и нормально )

Хочу сказать всем спасибо, все таки и такое натянутое общение, какое происходило у меня с некоторыми участвующими способствует прогрессу и если бы не те знания, которые во мне сформировались, при общение в этой теме мне бы не удалось доработать этот код (спасибо автору) до нужного результата, благодарю )

-------
не уверен, что знаешь наверняка, говори об этом заблаговремено )


Последний раз редактировалось dima1981, 10-11-2008 в 07:03.


Отправлено: 03:33, 10-11-2008 | #32


Аватара для dima1981

Ветеран


Сообщения: 512
Благодарности: 23

Профиль | Отправить PM | Цитировать


Поторопился, не получается вывод данных, как сделать, чтобы получилось, например запрашиваются данные, которых в базе нет, щас у меня отображается пустая страница, но хотелось бы, чтобы например или при такой ситуации строка появлялась(данных нет) или выводилась вся таблица?
Заранее спасибо.

-------
не уверен, что знаешь наверняка, говори об этом заблаговремено )


Отправлено: 04:28, 10-11-2008 | #33


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Помнится на phpclube, толи Фанат, то ли tony сказал примерно такую вещь. Программа думать не умеет, что вы ей скажете, то она и сделает.
В данном случае думаем и конспектируем.
запрашиваются данные, которых в базе нет = if (mysql_num_rows == 0)
появлялась строка - данных нет = echo 'Данных нет';
выводилась вся таблица = mysql_query('SELECT * FROM rt')

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:04, 11-11-2008 | #34


Аватара для dima1981

Ветеран


Сообщения: 512
Благодарности: 23

Профиль | Отправить PM | Цитировать


Цитата Igor_I:
Программа думать не умеет, что вы ей скажете, то она и сделает »
да где то я это видел, теперь за эксперементы, спасибо.

Не догнал я, как это делается заместо этой строки
PHP код: Выделить весь код

$posts mysql_num_rows($result); 


во всех полях кода прописал эту
PHP код: Выделить весь код

$posts mysql_num_rows(==0); 


да разные остальные комбинации пробЫвал подбирать, ходил на phpclub посмотреть, но тишина т.е. ничего не получилось, но получится постепенно, уверен )

-------
не уверен, что знаешь наверняка, говори об этом заблаговремено )


Последний раз редактировалось dima1981, 11-11-2008 в 11:33.


Отправлено: 07:40, 11-11-2008 | #35


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


if (mysql_num_rows($result) == 0) $empty = 1;

А внизу вывод

if ($empty == 1) echo "Данных нет";

http://tony2001.phpclub.net/doc/standard/ - мне кажется будет полезна.

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 19:27, 11-11-2008 | #36



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » постраничная навигация mysql, php

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
php + mysql Аlchemist Программирование в *nix 10 04-09-2008 17:49
[решено] Apache 2.2.8 + Php 5.2.6 + MySQL 5.0.51b (win) - не работает php v0f41k Вебмастеру 4 11-05-2008 22:08
PHP+MYSQL pauluss Вебмастеру 6 09-07-2004 22:46
PHP+MySQL GhostBuster Программирование и базы данных 7 21-08-2003 21:07
php и mysql ZDemon Программное обеспечение Linux и FreeBSD 7 08-02-2003 03:33




 
Переход