Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничная навигация
 
 автор: bartik   (13.05.2006 в 17:33)   письмо автору
 
 

здравствуйте перечитал многие статьи с страцами и ничего не получалось вот мой код.
<?
error_reporting
(0);
$pnumber "10";

//$tot = mysql_query("select count(id) from catlink where cat=".$cat.";");
echo "$tot";
$result=mysql_query("select * from catlink where cat=".$cat." limit ".$pnumber.";");
$thm mysql_query($query);

echo 
"<TABLE width=45% border=0>";
while(
$news=mysql_fetch_array($result)){

echo 
"<TR>
<TD vAlign=top noWrap align=middle width=94 height=59><A 
href='"
.$news['url']."'
target=_blank><IMG alt='"
.$news['description']."' Яndex 
src='"
.$news['banner']."' width='88' height='31'  border='0'></A>
<a href=full-site"
.$news['id'].".html><small>Подробнее</small></a></TD>
<TD class=dd2 vAlign=top height=59><a href='"
.$news['url']."'><b>".$news['name']."</b></a><br>".$news['description']."<br> Просмотров:200</TD></TR>
    
</tr>"
;
}

echo 
"</table>";
?>

и подскажите как легче сделать функцию чтобы можно было считать просмотры определённой страницы. желательно с примером, спасибо .
Хочу сказать купил вашу книгу , она хороша, но мало примеров с mysql.

   
 
 автор: cheops   (13.05.2006 в 18:20)   письмо автору
 
   для: bartik   (13.05.2006 в 17:33)
 

Можно поступить следующим образом
<?php 
  error_reporting
(0); 

  
$query "select count(*) from catlink where cat=".$cat;
  
$res mysql_query($query); 
  if(!
$res) exit(mysql_error());
  
$total mysql_result($res,0);

  
$pnumber "10"
  
// Проверяем передан ли номер текущей страницы
  
if(isset($_GET['page'])) $page $_GET['page'];
  else 
$page 1;
  
// Число страниц
  
$total count($temp);
  
$number = (int)($total/$pnumber);
  if((float)(
$total/$pnumber) - $number != 0$number++;

  
$start = (($page 1)*$pnumber 1);
  
$end $page*$pnumber 1;
  if(
$end $total$end $total;

  
$query "select * from catlink where cat=".$cat." limit $start$pnumber";
  
$result mysql_query($query); 
  if(!
$result) exit(mysql_error());

  if(
mysql_num_rows($result) > 0)
  {
    echo 
"<TABLE width=45% border=0>"
    while(
$news=mysql_fetch_array($result))
    { 

      echo 
"<TR> 
        <TD vAlign=top noWrap align=middle width=94 height=59><A 
        href='"
.$news['url']."' 
        target=_blank><IMG alt='"
.$news['description']."' Яndex 
        src='"
.$news['banner']."' width='88' height='31'  border='0'></A> 
        <a href=full-site"
.$news['id'].".html><small>Подробнее</small></a></TD> 
        <TD class=dd2 vAlign=top height=59><a href='"
.$news['url']."'><b>".$news['name']."</b></a><br>".$news['description']."<br> Просмотров:200</TD></TR> 
        </tr>"

     } 
     echo 
"</table>"
  }

  
// Постраничная навигация

  
for($i 1$i <= $number$i++)
  {
    
// Если это произвольная страница
    
if($i != $number)
    {
      if(
$page == $i)
      {
        echo 
"[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]&nbsp;";
      }
      else
      {
        echo 
"<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
             ((
$i 1)*$pnumber 1)."-".$i*$pnumber."]</a>&nbsp;";
      }
    }
    
// Если это последняя страница заменяем последнюю цифру 
    // максимальным числом позиций в массиве $temp
    
else
    {
      if(
$page == $i)
      {
        echo 
"[".(($i 1)*$pnumber 1)."-".($total 1)."]&nbsp;";
      }
      else
      {
        echo 
"<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
             ((
$i 1)*$pnumber 1)."-".($total 1)."]</a>&nbsp;";
      }
    }
  }
?>

PS Возможно вас также заинтересует ссылка http://www.softtime.ru/scripts/pager.php.
PPS У нас достаточно много книг, наибольшее внимание MySQL уделяется в книге "PHP 5. Практика создания Web-сайтов", которая полностью посвящена проблеме взаимодействия PHP и MySQL.

   
 
 автор: bartik   (13.05.2006 в 18:48)   письмо автору
 
   для: cheops   (13.05.2006 в 18:20)
 

Спасибо , но все сломалось , и перестало работать.

Notice: Undefined variable: temp in /home/rsubel/domains/mskcat.info/public_html/link.php on line 27
Вот что пишет , и после этого перестало что либо работать :(
Вот какая у меня книга!
http://www.softtime.ru/php5/?id_article=6

   
 
 автор: bartik   (13.05.2006 в 22:39)   письмо автору
 
   для: bartik   (13.05.2006 в 18:48)
 

Ну пожалуйста автор помогите=)

   
 
 автор: cheops   (13.05.2006 в 23:05)   письмо автору
 
   для: bartik   (13.05.2006 в 18:48)
 

Не могли бы вы выложить дамп таблицы catlink и пару записей к ней, чтобы можно было воспроизвести ситуацию на локальной машине?

   
 
 автор: bartik   (15.05.2006 в 20:41)   письмо автору
 
   для: cheops   (13.05.2006 в 23:05)
 

Да вот дамп правда добавилось немного полей новых , помогите пожалуйста! Вот новая версия, покажите пожалуйста на ней как вы разбиваете на страницы , нужно чтобы ещё внизу было 1 2 3 4 5 6 7 (автоматом).Спасибо Автор. Думаю добавить это в книгу необходимо!
<?
error_reporting
(0);
$pnumber "10";
$result=mysql_query("select * from catlink where cat=".$cat." and hide=1 limit ".$pnumber.";");

echo 
"<TABLE width=45% border=0>";
while(
$news=mysql_fetch_array($result)){
if(
$dat == $news['dat'] ) {
$den="<sup><font color='red'>New!</font></sup>";

}else {
$den="";
}
echo 
"<TR>
<TD vAlign=top noWrap align=middle width=94 height=59><A 
href='"
.$news['url']."'
target=_blank><IMG alt='"
.$news['description']."' Яndex 
src='"
.$news['banner']."' width='88' height='31'  border='0'></A>
<a href=full-site"
.$news['id'].".html><small>Подробнее</small></a></TD>
<TD class=dd2 vAlign=top height=59>
$den <a href='".$news['url']."'><b>".$news['name']."</b></a><br>".$news['description']."<br> Просмотров:1</TD></TR>
    
</tr>"
;
}

echo 
"</table>";
$tot mysql_query("SELECT count(*) FROM catlink WHERE cat = '$cat' and hide=1;"); 
if(!
$tot) exit(mysql_error()); 
$total mysql_result($tot0); 
echo 
"Ссылок в категории: <b> $total</b>"?>

   
 
 автор: cheops   (15.05.2006 в 22:33)   письмо автору
 
   для: bartik   (15.05.2006 в 20:41)
 

Можно поступить следующим образом
<?php 
  error_reporting
(0); 

  
// Устанавливаем соединение с базой данных 
  
require_once("config.php");

  
// Проверяем параметр cat
  
if(isset($_GET['cat'])) $cat $_GET['cat']; 
  else 
$cat     68

  
$query "select count(*) from catlink where cat=".$cat
  
$res mysql_query($query); 
  if(!
$res) exit(mysql_error()); 
  
$total mysql_result($res,0); 

  
$pnumber "2"
  
// Проверяем передан ли номер текущей страницы 
  
if(isset($_GET['page'])) $page $_GET['page']; 
  else 
$page 1
  
// Число страниц 
  
$number = (int)($total/$pnumber); 
  if((float)(
$total/$pnumber) - $number != 0$number++; 

  
$start = (($page 1)*$pnumber 1); 
  
$end $page*$pnumber 1
  if(
$end $total$end $total

  
$query "select * from catlink where cat=".$cat." limit $start$pnumber"
  
$result mysql_query($query); 
  if(!
$result) exit(mysql_error()); 

  if(
mysql_num_rows($result) > 0
  { 
    echo 
"<TABLE width=45% border=0>"
    while(
$news=mysql_fetch_array($result)) 
    { 

      echo 
"<TR> 
        <TD vAlign=top noWrap align=middle width=94 height=59><A 
        href='"
.$news['url']."' 
        target=_blank><IMG alt='"
.$news['description']."' Яndex 
        src='"
.$news['banner']."' width='88' height='31'  border='0'></A> 
        <a href=full-site"
.$news['id'].".html><small>Подробнее</small></a></TD> 
        <TD class=dd2 vAlign=top height=59><a href='"
.$news['url']."'><b>".$news['name']."</b></a><br>".$news['description']."<br> Просмотров:200</TD></TR> 
        </tr>"

     } 
     echo 
"</table>"
  } 

  
// Постраничная навигация 
  
for($i 1$i <= $number$i++) 
  { 
    
// Если это произвольная страница 
    
if($i != $number
    { 
      if(
$page == $i
      { 
        echo 
"[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]&nbsp;"
      } 
      else 
      { 
        echo 
"<a href=$_SERVER[PHP_SELF]?page=$i&cat=$cat>["
             ((
$i 1)*$pnumber 1)."-".$i*$pnumber."]</a>&nbsp;"
      } 
    } 
    
// Если это последняя страница заменяем последнюю цифру 
    // максимальным числом позиций в массиве $temp 
    
else 
    { 
      if(
$page == $i
      { 
        echo 
"[".(($i 1)*$pnumber 1)."-".($total 1)."]&nbsp;"
      } 
      else 
      { 
        echo 
"<a href=$_SERVER[PHP_SELF]?page=$i&cat=$cat>["
             ((
$i 1)*$pnumber 1)."-".($total 1)."]</a>&nbsp;"
      } 
    } 
  } 
?>

   
 
 автор: bartik   (16.05.2006 в 07:50)   письмо автору
 
   для: cheops   (15.05.2006 в 22:33)
 

Вот спасибо , вчера разбирал ваш код и понял, как это делать! Вы настоящий мастер. Не могли бы посоветовать какую книгу преобрести ещё на PHP из вашего симейства. На данный момент книга Самоучитель PHP 5. Респект вам большой! Спасибо ещё раз!
С уважением Алексей.

   
 
 автор: cheops   (16.05.2006 в 11:56)   письмо автору
 
   для: bartik   (16.05.2006 в 07:50)
 

В первую очередь обратите внимание на книгу PHP 5 на примерах - в ней как раз рассматриваются короткие скрипты на одну страницу вроде постраничной навигации - т.е. небольшие кирпичики из которых можно построить большой сайт. Данная книга, как впрочем и "PHP 5. Практика создания Web-сайтов" задумывалась как продолжение "Самоучитель PHP 5". В "PHP 5. Практика создания Web-сайтов" рассматривается построение больших Web-приложений, а в PHP 5 на примерах - своеобразный handcook (поваренная книга) коротких рецептов.

   
 
 автор: bartik   (17.05.2006 в 02:16)   письмо автору
 
   для: cheops   (16.05.2006 в 11:56)
 

Ок ,завтра пойду покупать. Спасибо :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования