Отображение 50 строк на странице из mysql в таблице, но позволяет искать всю таблицу - PullRequest
0 голосов
/ 26 января 2019

У меня есть таблица MySQL, которая отображает более 10000 данных на странице.

Я использую поиск ajax, когда при вводе имени автоматически отображается результат.

Я хочу ограничить нет. строк, отображаемых на странице, так как 10000 строк занимают много места, а также выглядят не очень профессионально. Для этого я использовал

LIMIT  10

и отображает только 10 строк на странице, но проблема в том, что я ограничен поиском в этих 10 строках. Если я введу любое другое имя в поле поиска, которое не будет отображаться ни в одной из строк этой десятки, тогда оно ничего не найдет.

Так или иначе, есть ли возможность скрыть оставшиеся строки и показать только 100 на страницу, а также разрешить поиск по всей таблице.

Вот мой код для отображения результата.

<input type="text" style="height:35px; color:#222;" name="filter" value="" id="filter" placeholder="Search Students..." autocomplete="off" />
<br><br>
<table class="hoverTable" id="resultTable" data-responsive="table" style="text-align: left;">
	<thead>
		<tr>
		
			<th width="20%"> Full Name </th>
			<th width="15%"> District</th>
			<th width="5%"> Gender </th>
			<th width="5%"> Year </th>
			<th width="25%"> Email</th>
			<th width="5%"> Phone</th>

		</tr>
	</thead>
	<tbody>
		
			<?php
			
				include('../connect.php');
				$result = $db->prepare("SELECT * FROM student ORDER BY id DESC");
				$result->execute();
				for($i=0; $row = $result->fetch(); $i++){
				
			?>
		

			<td>  <a  href="viewstudentuser.php?id=<?php echo $row['id']; ?>"> <?php echo $row['name']; ?> <?php echo $row['last_name']; ?> </a> </td>
			<td><?php echo $row['district']; ?></td>
			<td><?php echo $row['gender']; ?></td>
			<td><?php echo $row['yoa']; ?></td>
			<td><?php echo $row['email']; ?></td>
			<td><?php echo $row['phone']; ?></td>
		
			</tr>
			<?php
				}
			?>
		
		
		
	</tbody>

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 26 января 2019

Вам необходимо использовать LIMIT в сочетании с OFFSET.

Пример для per_page = 50 и page = 3

SELECT * FROM student 
WHERE some_column LIKE '%search%'
LIMIT (3 - 1)*50, 50
ORDER BY id DESC

Вы можете просмотреть некоторые примеры здесь https://www.geeksforgeeks.org/php-mysql-limit-clause

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...