Другие языки программирования и технологии

как делаеться сортировка данных по страницам. Типа стр 1 2 3 4 5...

При извлечении из БД поставить лимит:

$sql = "SELECT * FROM table_name LIMIT ".(($page_id-1)*10).", 10";

Вот в этом запросе в зависимости от номера страницы ($page_id) будет выводиться по 10 записей из БД.. .
Т. е. для 1-й страницы запрос примет вид: $sql = "SELECT * FROM table_name LIMIT 0, 10";
для второй - $sql = "SELECT * FROM table_name LIMIT 10, 10"; и т. д.
Эрнест Хамадияров
Эрнест Хамадияров
23 519
Лучший ответ
Что значит сортировка данных по страницам? это в смысле постраничный вывод?

Вот смотри код, который выводит сами номера страничек:
$all=300;
$na_str=10;
if ($all > $na_str){

echo '<center>';

for ($i=0; $i < ceil(($all)/$na_str); $i++){
echo ' < a id="text" href="'.$PHP_SELF.'?src=news&pg='.($i*$na_str).' " >';
if ($_GET['pg']==($i*$tna_str)){
echo '<font>'.($i+1).'</font>';
}else{
echo ($i+1);
}
echo ' < / a > ';
echo '</center>';

Затем определяешь какая нажата страничка (активная)

if (!isSet($_GET['pg'])){ $_GET['pg']=0 ; }

и делаешь вывод
Show($_GET['pg']);

Функция Show примерно такая

function Show($start_new){
if ($start_new<0){$start_new=0;}
(($start_new+$na_str) <= ($all)) ? $end_new=($start_new+$na_str) : $end_new=($this->all);

$sql='select ...'; // или что и откуда берешь тут твой код

for ($i=$start_new; $i<$end_new; $i++){
mysql_data_seek($result,$i);
$ar_new = mysql_fetch_array($result);

}
}

т. е. Show выводит значания от $start до $start+$na_str
.*
.*maxmud*.
3 972
1) Не достаточно данных.
От куда берутся данные, как хранятся?

Как вариант:
// Get params
$startpos = intval(getParam($_REQUEST['startpos'],0));
...
$per_count = 10; // Количество ответов на странице
...
// 1..10 11..20 21..30
$links = '';
$query = "SELECT COUNT(*) FROM table";
$result = mysql_query($query) or die('Illegal query: ' . mysql_error());
$row = mysql_fetch_array($result);
$count = $row[0];
if ( $count>$per_count)
{
$links = '';
$c = ceil($count/$per_count);
for ($i=0; $i<$c; $i++)
{
$page = (($i*$per_count)==$startpos) ? strval($i*$per_count+1 . ' - ' . ($i+1)*$per_count . ' ') : ' ';
$links .= $page;
}
}

Похожие вопросы