Как сделать переход по страницам

Статус
В этой теме нельзя размещать новые ответы.
При помощи limit делаешь вывод по сколько хочешь, делишь mysql_num_rows на число limit для получения количества страниц и составляешь цикл для данного количства страниц, для перехода по страницам используй GET, страницы перебираешь опять же при помощи оператора limit (limit первое число, второе число, где первое число с какой строки начинаем, второе число - количество выводимых строк)

Вот мой пример

PHP:
if(isset($_GET['page'])){
$page=($_GET['page']-1);
}else{
$page=0;
}
$lim = 10; //Количсетво выводимых строк
$start = abs($page*$lim);
$query = "SELECT count(*) FROM table";
$result = mysql_query($query);
$count = mysql_fetch_row($result);
$total_rows = $count[0];
$lim2 = ceil($total_rows/$lim);
for($i=1; $i<=$lim2; $i++){
    if($lim2 != 1){
        if($i-1 == $page){
        echo $i." ";
        }else{
        echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> ';
        }
    }
}
Выбранная страница не показывается как ссылка, а как текст.
 
Со страницами теперь ясно, а при посещении сайта как сделать, чтобы контент на главной странице был из разных жанров и менялся при следующем посящении? (подразумевается шахматный порядок эскизов файлов)
 
Я тоже до сих пор задаюсь этим вопросом и ничего лучше, чем case или if elseif не придумал.
Практика программирования на С в частности микроконтроллеры говорит, что такие конструкции работают быстрее всех прочих не смотря на приличный объем кода.
Вот так-то..
Если кто может чем возразить возражайте.

Держать страницы в базе MySQL полная гайка. Это всеравно, что иметь то не знаю, что.
Возражайте...
 
(подразумевается шахматный порядок эскизов файлов)
Хорошенько Подумайте нужно ли это. Мой опыт показа случайных объектов на странице закончился крахом. Пришлось все сделать статичным. Клиенты звонят - "я у вас на главной страничке видел домик - расскажите мне про него"... он вот такой - красненький вполосочку... А домиков у меня в базе 1000 штук - как ему объяснить что на сайте random?..
Так что если у вас не рекламные блоки а свое-родное то надо продумывать чтобы контент висел один и тот же хотябы пару дней...
 
А у меня вопрос дилетанта: ссылка с картинкой в левом столбце страницы раздвигает фон правого столбца таблици. border="0", а раздвижка все равно есть. Как можно исправить?
 
Свойство border отвечает за отрисовку рамки и никаким боком не влияет на ширину столбца =)
Вам лучше почитать.... ну для примера... тут: Для просмотра ссылки Войди или Зарегистрируйся
 
Мой вариант

PHP:
if (empty($_REQUEST["cat"]) && empty($_REQUEST["id"])) {
  $num_all = $db->sql_numrows($db->sql_query("select `id` from ".prefix."news"));
  if (isset ($_REQUEST["page"])){
    $page=is_num($_REQUEST["page"]);
  } else {
    $page=1;
  }
  $n = ceil($num_all/$limit);
  $id_page = (($page-1)*$limit);
  if ($n>=1){
    $news_q = $db->sql_query("select id, subject, priv_news, news, datestamp, open from ".prefix."news ORDER BY id DESC limit ".$id_page.",".$limit."");
    $max_row = $db->sql_numrows($news_q);
      if($max_row<$limit) {
        $limit=$max_row;
      }
    for ($i=0;$i<$max_row;$i++) {
      list($id, $sub, $priv_news, $news, $datestamp, $open) = $db->sql_arraynum($news_q);
      echo '<b>'.$sub.'</b>'.$datestamp.'<br >'.$priv_news.'<br ></b><br>'._READS.' ('.$open.') <a href="'.$_SERVER['PHP_SELF'].'?name=news&id='.$id.'">Читать дальше...</a><hr>';
    }
    print "<center>";
    $start_p=$page-$num_p;
    $end_p=$page+$num_p;
    if ($end_p>$n){$end_p=$n;}
    $start_p=$end_p-$num_p*2;
    if ($start_p<1){$start_p=1;}
    $end_p=$start_p+$num_p*2;
    if ($start_p>1){
      $t=$start_p-1;
      print "<a href=\"".$_SERVER['PHP_SELF']."?name=news&page=".$t."\">Назад</a> ";
    }
    for ($i=$start_p;$i<$end_p+1 && $i<$n+1;$i++){
      if ($page!=$i){
        print "<a href=\"".$_SERVER['PHP_SELF']."?name=news&page=".$i."\">[".$i."]</a> ";
      } else {
        print "<a href=\"".$_SERVER['PHP_SELF']."?name=news&page=".$i."\" style=\"color:#cccccc\">[".$i."]</a> ";
      }
    }
    if ($end_p<$n){
      print "<a href=\"".$_SERVER['PHP_SELF']."?name=news&page=".$i."\">Вперед</a>";
    }
    print "</center>";
  }
  if ($page>$n) {
    print "Страница не существует";
  }
}

Очень просто и надежно!!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху