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

Форум PHP

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

 

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

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

тема: Постраничный вывод сделан!!...but!! ONE TROUBLE!((
 
 автор: $Konstantin=const   (22.04.2008 в 19:30)   письмо автору
 
 

Здравствуйте!! помогите понять почему эта *редиска* мне показывает что в данном коде:
    
    $list = 1;
    $a=3;
    Всего страниц: ".$a."<br>";
    $b=0;
    $c=1;
    $i=0;
    while ($b<$a)
    {
      if ($page=$c)
        {
         echo "[".$c."]";
        }
      else
        {
         echo '<a href="all.php?i='.$i.'">['.$c.']</a>';
        }
      $i = $i+$list;
      ++$c;
      ++$b;
     }
Он мне показывает что $page=$c....и выводит все номера страниц как текст, а необходимо, чтобы текстом было только одно значение(текущая страница).....ПОМОГИТЕ ПЛИЗ ПОЧЕМУ IF непашет ведь вроде все визуально правильно.....ИЛИ НЕТ??

   
 
 автор: Shey   (22.04.2008 в 19:36)   письмо автору
 
   для: $Konstantin=const   (22.04.2008 в 19:30)
 

Условие if неверно. Ты в нем присваиваешь($page=$c), а нао проверять равны ли ($page==$c).
Вот пример, если бы текущая страница была первая:
$list = 1;
    $a=3;
    echo "Всего страниц: ".$a."<br>";
    $b=0;
    $c=1;
    $i=0;
    $page=1;
    while ($b<$a)
    {
      if ($page==$c)
        {
         echo "[".$c."]";
        }
      else
        {
         echo '<a href="all.php?i='.$i.'">['.$c.']</a>';
        }
      $i = $i+$list;
      ++$c;
      ++$b;
     }

   
 
 автор: $Konstantin=const   (22.04.2008 в 19:40)   письмо автору
 
   для: Shey   (22.04.2008 в 19:36)
 

Благодарю вас, Shey, заработало)))...

   
 
 автор: DarkMan   (03.01.2009 в 20:16)   письмо автору
 
   для: $Konstantin=const   (22.04.2008 в 19:40)
 

сделал постраничный вывод по 10 сообщений на странице, все работает как надо за исключением одной вещи: когда всего сообщений 1-9 или 11-19 или 21-29 и т.д. навигация работает как нужно, но вот если всего сообщений 10 или 20 или 30 или 40 и т.д. с навигацией непорядок. Чтобы вам было понятние в чем проблема я ее не напишу, а "сфотографирую", вот смотрите:
тут все норманьно
http://s59.radikal.ru/i163/0901/64/2b90dae56c62.jpg
а тут нет
http://i002.radikal.ru/0901/61/45cb657f3442.jpg
вот код страницы
<?
$header 
"data/header.php";
$footer "data/footer.php";
$data "data/guest.dat";
include 
$header;
$f file_get_contents($data);
$message_na_stran 10;
preg_match_all("#([^\t]+)(\t|$)#U"$f$outPREG_PATTERN_ORDER);
for(
$i = -1$i count($out[0]); $i++) {
    
$temp[] = trim($out[0][$i]);
}
if(isset(
$_GET["page"])) $page $_GET["page"];
else 
$page 1;
$total_message count($temp);
$number_na_stran = (int)($total_message/$message_na_stran);
if((
$total_message/$message_na_stran) - $number_na_stran != 0$number_na_stran++;
$first_mes_na_stran = (($page 1)*$message_na_stran 1);
$end $page*$message_na_stran 1;
if(
$end $total_message$end $total_message;
// а теперь сама страница :)
for($i $first_mes_na_stran$i $end$i++) {
    echo 
$temp[$i]."<br>";
}
// навигация
for($i 1$i <= $number_na_stran$i++) {
    if(
$i != $number_na_stran) {
        echo 
"<a href=$_SERVER[PHP_SELF]?page=".$i.">[".(($i 1)*$message_na_stran 1)."-".$i*$message_na_stran."]</a> ";
    } else {
        echo 
"<a href=$_SERVER[PHP_SELF]?page=".$i.">[".(($i 1)*$message_na_stran 1)."-".($total_message 1)."]</a> ";
    }
// конец навигации
echo "<br><a href=\"add.php\">Добавить сообщение</a>";
// страница кончилась
include $footer;
?>

как вы понимаете в файле "data/header.php" прописанно <html><head><title></title></head><body>, в файле "data/footer.php" - </body></html>, ну а в файле "data/guest.dat" хранятся сообщения.
Народ пожалуйста подскажите как исправить эту ошибку, я из-за нее уже второй день на месте стою, помогите

   
 
 автор: Николай2357   (03.01.2009 в 22:34)   письмо автору
 
   для: DarkMan   (03.01.2009 в 20:16)
 

Попробуйте так:
<? 
$header 
"data/header.php"
$footer "data/footer.php"
$data "data/guest.dat"
include 
$header
$f file_get_contents($data); 
$message_na_stran 10
preg_match_all("#([^\t]+)(\t|$)#U"$f$outPREG_PATTERN_ORDER); 

for(
$i 0$i count($out[0]); $i++) { 
    
$temp[] = trim($out[0][$i]); 

$page = isset($_GET["page"])?$_GET["page"]:null
$total_message count($temp);
$number_na_stran = (int)(($total_message -1)/$message_na_stran) + 1
if(!
$page || $page 0$page 1;  
  if(
$page $number_na_stran$page $number_na_stran;  
$first_mes_na_stran $page $message_na_stran $message_na_stran;
$end $page*$message_na_stran ;
// а теперь сама страница :) 
for($i $first_mes_na_stran$i $end$i++) { 
    echo 
$temp[$i]."<br>"

// навигация 
for($i 1$i <= $number_na_stran$i++) 

$j $i $message_na_stran $message_na_stran 1;
$k $i $message_na_stran;

        echo 
"<a href=$_SERVER[PHP_SELF]?page=".$i.">[".$j."-".$k."]</a> "

// конец навигации 
echo "<br><a href=\"add.php\">Добавить сообщение</a>"
// страница кончилась 
include $footer
?>

По моему должно сработать.

   
 
 автор: DarkMan   (03.01.2009 в 23:08)   письмо автору
 
   для: Николай2357   (03.01.2009 в 22:34)
 

спасибо чувак, все работает, я тебя уважаю

   
Rambler's Top100
вверх

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