Forum Webscript.Ru
Программирование => PHP => Тема начата: -DieseLok- от 28 Ноября 2004, 15:44:28
-
$connection = mysql_connect("localhost", "root", "");
$db = mysql_select_db ("dbase");
$curr_page=$_GET[\'page\'];
$po="6";
$limit=$_GET[\'page\'];
if ($curr_page==1) {$s=0;} else {$a=$limit-1;$s=$a*$po;}
$query = "SELECT * FROM songs WHERE date = \'2004-11-27\' ORDER BY si_id LIMIT $s,$po";
$result = mysql_query($query, $connection);
while ($rows = mysql_fetch_array($result))
{
echo"$rows[so_name]
";
}
$query = "SELECT * FROM songs WHERE date = \'2004-11-27\'";
$result = mysql_query($query, $connection);
$posts=mysql_numrows($result);
$cpages=$posts/$po;
// Воспользовавшись поиском нашел пример, постраничьного вывода:
for ($i = 1; $i <= $cpages; $i++)
$pages[$i] = ($i == $curr_page) ? \'\'.$i.\'\' : \'\'.$i.\'\';
echo \'Страницы: \'.join(\', \', $pages);
?>
Работать то оно работает, !НО! допустим у меня в базе таких записей 13, лимит у меня стоит 6, тоесть єто фактически выходит 3 стриницы (две поные и одна частичьно заполненая), а он вываливает в списке ссылок мне всего 2 страницы :( и это выходит что у меня 13,14 записи гуляют
Что делать???????? Помогите пожалуйста!
-
Судя по коду, у тебя неверно вычисляется кол-во страниц.
Подумай над строкой
$cpages=$posts/$po;
Сам подумай, чему будет равен $cpages при 13 ссылках.
И как будет работать цикл ниже
-
ну а какже мне узнать количество страниц?
я вытаскиваю из базы количество записей и делю на нужное количество на страницу... правильно?
Будет ровно 2,2-ум
тоесть получаеться мне нужно округлить до 3-ох?
если я не ошибаюсь это делает round();???
-
-DieseLok-:
если я не ошибаюсь это делает round();???
ошибаешься так как тебе нужно округление всегда в большую сторону
это делает [p]ceil[/p]
-
ДА! ДА! ДА!!!!!!!!!!! Спасибо! всё рулит! вот ниже исправления:
$connection = mysql_connect("localhost", "root", "");
$db = mysql_select_db ("dbase");
$curr_page=$_GET[\'page\'];
$po="6";
$limit=$_GET[\'page\'];
if ($curr_page==1) {$s=0;} else {$a=$limit-1;$s=$a*$po;}
$query = "SELECT * FROM songs WHERE date = \'2004-11-27\' ORDER BY si_id LIMIT $s,$po";
$result = mysql_query($query, $connection);
while ($rows = mysql_fetch_array($result))
{
echo"$rows[so_name]
";
}
$query = "SELECT * FROM songs WHERE date = \'2004-11-27\'";
$result = mysql_query($query, $connection);
$posts=mysql_numrows($result);
[B]
$npages=ceil($posts/$po);
$cpages=$npages;
[/B]
// Воспользовавшись поиском нашел пример, постраничьного вывода:
for ($i = 1; $i <= $cpages; $i++)
$pages[$i] = ($i == $curr_page) ? \'\'.$i.\'\' : \'\'.$i.\'\';
echo \'Страницы: \'.join(\', \', $pages);
?>