Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Постраничная навигация


Автор: Predator199 18.11.2012, 12:40
Вроде все получается но вот заноза.

Код

 //ВЫВОДИМ НОМЕРА СТРАНИЦ
 for ($i=1; $i<$num_rows; $i++) {
    if ($i != intval($nav)) {
        $gg= '<a href="/mod=all'.$PHP_SELF.'?str='.$i.'">'.$i.'</a> ';
   }
 }   
 
 return array ($gg, $list);

Код работает и выводит с 1-ой по 6 страницу. Тут в массив попадает только последняя страница. Подскажите пожалуйста , как правильно сделать чтоб все страницы были?

Автор: Guedda 18.11.2012, 13:33
Ты здесь присваеваешь постоянно $gg новое значение. Поэтому в конечном итоге получается в $gg только последняя страница. А тебе необходима конкатенация (сложение строк). Вот как надо, чтобы выводилось все:
Код

$gg = ""; // инициализируем $gg
 //ВЫВОДИМ НОМЕРА СТРАНИЦ
 for ($i=1; $i<$num_rows; $i++) {
    if ($i != intval($nav)) {
        $gg .= '<a href="/mod=all'.$PHP_SELF.'?str='.$i.'">'.$i.'</a> '; // .= добавляет к строке строку.
   }
 }   
 
 return array ($gg, $list);

Автор: Predator199 18.11.2012, 13:39
Цитата(Guedda @ 18.11.2012,  13:33)
Ты здесь присваеваешь постоянно $gg новое значение. Поэтому в конечном итоге получается в $gg только последняя страница. А тебе необходима конкатенация (сложение строк). Вот как надо, чтобы выводилось все:
Код

$gg = ""; // инициализируем $gg
 //ВЫВОДИМ НОМЕРА СТРАНИЦ
 for ($i=1; $i<$num_rows; $i++) {
    if ($i != intval($nav)) {
        $gg .= '<a href="/mod=all'.$PHP_SELF.'?str='.$i.'">'.$i.'</a> '; // .= добавляет к строке строку.
   }
 }   
 
 return array ($gg, $list);

Спасибо, работает. Буду знать=)

Автор: Predator199 18.11.2012, 14:43
Подскажите, запутался совсем.
Начиная показывать страницы с 1 до последней. Но есть страница "0".
Вот как "сдвинуть в лево" нумерацию". То есть 0=1, 1=2. Ничего не пойму.

Автор: Sanchezzz 18.11.2012, 15:06
Ты сперва должен высчитать чему равен твой offect для SQL
Формула проста
Код

$topage = 25; // показывать на страницы по 25 строчек из БД
$page    = 1;  // номер страницы
$start = ($topage*($page-1);

// для $sql = "LIMIT "$start . ",".$topage;

Формула получения количества страниц.

Код

$count = 100;  //сколько всего записей в БД.
$topage = 25; // показывать на страницы по 25 строчек из БД
$countpage - ceil($count / $topage);


http://php.su/articles/?cat=examples&page=062

Автор: Predator199 18.11.2012, 19:04
Спс, нашел ошибку. 2 чеса просидел и не увидел, что не прописал сортировку при подсчете количества записей=(. Такой лабиринт получился=)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)