Почему пагинация не работает при переходе по страницам?

nllabs

Новичок
выводит значение переменной.
Неправильно. Почему бы не посмотреть документацию ?
Прошу прощения, некорректно задал вопрос. Я в этом сам виноват.


> $seg = $this->uri->segment(2);
> скорее всего, это тоже что и
> $offset = (int) $this->uri->segment(2);
То есть приведение типов (int) ничего не делает ?
Я изначально писал о том, что нужно понимать какой возвращается результат. Вы четко это понимаете ?

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

Не нужно спешить с ответом - эти ответы нужны Вам а не мне.
 
Последнее редактирование:

Serebos

Новичок
print_r() выводит пригодную для чтения человеком информацию о переменной. Если задано string, integer или float, печатается само значение. Если задан array, значения будут представлены в формате с показом ключей и элементов.
Вероятно, в глазах, более опытного программиста это существенное отличие от моего первого суждения о этой функции.
 

Serebos

Новичок
Вы четко это понимаете ?
Я четко понимаю то, что может и вижу вершину айсберга, но не представляю, что же там под низом!
В любом случае, nllabs, спасибо Вам и другим энтузиастам этого форума, за помощь и подсказки.
Вероятно, следует пересмотреть свои подходы в освоении этой области знаний. Вероятно, это будет менторство.
Иногда такое ощущение, что проходит целая неделя, а я все на том же месте.
 

nllabs

Новичок
print_r() выводит пригодную для чтения человеком {skip}
Все правильно. Раз печатается только значение, то тип переменной не будет указан, ведь так ?
Там же, в документации по print_r(), в описании этой функции есть ссылка на var_dump().
А при отладке нужно видеть не только значение, но и тип.
Запустите этот код:
PHP:
$i =  11;
$s = '11';

echo "<h3>print_r:</h3><br >\n";
print_r($i);
echo "<br >\n";

print_r($s);
echo "<br >\n";

echo "<h3>var_dump:</h3><br >\n";
var_dump($i);
echo "<br >\n";

var_dump($s);
echo "<br >\n";
Есть разница ?

То есть при отладке использовать var_dump, а для массивов использовать var_dump (неудобно отображает) или print_r (удобно отображает, но без типов).

переменная может иметь значение только целое число.
В переменную заносится значение, приведенное к целочисленному типу (значение, сконвертированное в целочисленный тип). См. документацию по приведению типов.
И там, где вы утверждали, что "ничего нет", "обращение невозможно" или "его не существует", переменной присваивается NULL. А print_r, естественно, ничего не показывает.

Я четко понимаю то, что может и вижу вершину айсберга, но не представляю, что же там под низом!
Я спрашивал немного не о том.
Что же все-таки возвращает $this->uri->segment(2) ?
Правильный ответ такой:
Возвращает значение сегмента (если он есть) или NULL.

> что же там под низом!
Это же просто, проявите смекалку, что ли. Или выспитесь. Не знаю, почему это вызывает неразрешимую проблему.
Поищите в поисковике, в конце концов, как работает pagination.
Сначала выясняем, сколько всего записей (SQL запрос).
Потом это делим на количество записей на странице. Полученный результат округляем к большему значению. Это будет количество страниц.
Далее, создаем ссылки на первую, последнюю страницы. Также создаем ссылки на предыдущую и следующую страницы.
Примерно так.
 

Serebos

Новичок
nllabs, спасибо за такую детальную информацию. На работу иду.
Все внимательно перечитаю позже и выделю основные моменты, для своего понимания.
СПАСИБО!
 

nllabs

Новичок
Не всегда. И это как раз такой случай. Тип не важен, важно наличие значения. А его нет - т.е. неверно описана маршрутизация.
Но он же не понимает, что там NULL. А если бы понял - то понял бы что запрашиваемого сегмента нет. И так далее, шаг за шагом, нужно проверить ключевые переменные, все ли там соответствует ожиданию. Это и есть отладка.
При отладке лучше использовать var_dump() а не print_r().
print_r() вывел пустую строку - и он ушел в ступор: "ничего нет", "обращение невозможно", "его не существует".
А значение есть, и оно равно NULL.
Потом, шаг за шагом, он дошел бы до маршрутов.
 
Сверху