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);
 ?>