Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр 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, $out, PREG_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, $out, PREG_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 Яндекс.Метрика Яндекс цитирования