Постраничная навигация в таблице

407
14 февраля 2017, 21:52

Помогите сделать постраничную навигацию по выводу таблиц, к примеру по 20 строк на странице, вот код

<table> 
    <thead> 
 
    <tr> 
        <th>Дата</th>         
        <th>Время</th>	 
        <th>Город</th> 
		<th>Страна</th> 
		<th>IP</th>		 
		<th>Имя</th> 
        <th>Фамилия</th> 
		<th>Телефон</th> 
		<th>Емайл</th>		 
    </tr> 
    </thead> 
<?php  
 
    $connect_to_db = mysql_connect($dbhost, $dbuser, $dbpass) 
		or die("Could not connect: " . mysql_error()); 
 
 
    mysql_select_db($dbname, $connect_to_db) 
		or die("Could not select DB: " . mysql_error()); 
 
 
    $qr_result = mysql_query("SELECT * FROM `usertable` ORDER BY `dt`") 
		or die(mysql_error()); 
	 
    
	while($data = mysql_fetch_array($qr_result)){  
		echo '<tr>'; 
		echo '<td>' . $data['dt'] . '</td>'; 
		echo '<td>' . $data['tm'] . '</td>';	 
		echo '<td>' . $data['city'] . '</td>';	 
		echo '<td>' . $data['country'] . '</td>'; 
		echo '<td>' . $data['ip'] . '</td>';		 
		echo '<td>' . $data['name'] . '</td>'; 
		echo '<td>' . $data['lname'] . '</td>'; 
		echo '<td>' . $data['phone'] . '</td>';	 
		echo '<td>' . $data['email'] . '</td>';		 
		echo '</tr>'; 
	} 
	 
    echo '</tbody>'; 
	echo '</table>'; 
 
    // закрываем соединение с сервером  базы данных 
    mysql_close($connect_to_db); 
?>

Answer 1

Замените while на for, выводите в цикле 20 записей, после генерируйте ссылку и с ней передавайте значение последней итерации цикла. На этой же странице проверяйте get и на основании проверки перестраивайте таблицу, начиная перебор массива с индекса равного значению последней итерации(который передаёте). Один из вариантов.

Answer 2

Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT.

LIMIT принимает один или два числовых аргумента. Эти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. Начальное смещение равно 0 , т.е :

`SELECT * FROM table LIMIT 5,10;` # возвращает строки 6-15

Если задан один аргумент, то он показывает максимальное количество возвращаемых строк:

`SELECT * FROM table LIMIT 5;` # возвращает первых 5 строк

Другими словами, LIMIT n эквивалентно LIMIT 0,n.

Создайте переменную $page=1 и $rows_on_page=20

$offset = ($page-1)*rows_on_page;
"SELECT * FROM table LIMIT $offset,$rows_on_page";
READ ALSO
Как получить все переводы в Laravel?

Как получить все переводы в Laravel?

Нужно получить все все переводы из файлов локализации по выбранному языку в виде многомерного массива

382
Слетели настройки phpStorm

Слетели настройки phpStorm

теперь при подключении пишет такую ошибку:

636
Как в yii2 организовать поиск по диапазону?

Как в yii2 организовать поиск по диапазону?

ЗдравствуйтеЕсть yii2, есть таблица столбец "цена"

736
Как сделать эти 3 блока на WP, в цикле кастомными записями или кастомными полями?

Как сделать эти 3 блока на WP, в цикле кастомными записями или кастомными полями?

Верстка сделана так что 2 первых блока отдельно а третий отдельноКак я понимаю делать это записями в цикле нет смысла? Не думаю что будет добавляться...

320