Paginate my Html/Php/MySql скрипт

Как я могу разбивать этот сценарий на 5 строк на одной странице и 5 на другой и так далее. Я попробовал учебники и многое другое для этого, но все же не могу получить его.

Ниже приведен мой код:

<?php require "manybr.htm" ?>
<?php

$host="XXXXX";//Host name 
$username="XXXX";//Mysql username 
$password="XXXXX";//Mysql password 
$db_name="XXXX";//Database name 
$tbl_name="tylted";//Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// select record from MySQL 
$sql="SELECT * FROM $tbl_name order by id desc";
$result=mysql_query($sql);
?>
<table background='images/view.png' width='50%' align='center'>
<tr>
<th align='center'>Group</th><th align='center'>Submition By</th><th align='center'>Submition On</th><th align='center'>ScreenName</th><th     align='center'>Password</th><th align='center'>Does This Work?</th><th align='center'>Vote</th>
</tr>
<tr>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td background='transparent' align='center'>{<? echo $rows    ['group']; ?>} </td>
<td background='transparent' align='center'><? echo $rows['yname'];     ?> </td>
<td background='transparent' align='center'><? echo $rows['date']; ?></td>
<td background='transparent' align='center'><? echo $rows['username']; ?></td>
<td background='transparent' align='center'><? echo $rows['password']; ?></td>
<td background='transparent' align='center'><? echo $rows['works']; ?>% Yes ||||  <? echo $rows['dworks']; ?>%     No</td>
<td background='transpatent' align='center'>   

</td> 
</tr>

<?php
// close while loop 
}
?>

<?php
// close connection; 
mysql_close();
?>
</table>

Я добавил LIMIT 0, 5 к моему запросу, и теперь появляется 5. Как мне сделать ссылку со ссылками на страницу 2?

Я еще не знаю MySqli или PDO . Я скоро узнаю, поэтому, пожалуйста, не делайте этого комментария. Я скоро переведу свой встроенный код в CSS, но пока не готов. Мне нужно сначала начать эту работу.

<?php

$host="XXX";//Host name 
$username="XXX";//Mysql username 
$password="XXX";//Mysql password 
$db_name="XXX";//Database name 
$tbl_name="tylted";//Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");


// select record from MySQL 
 $offset=$_GET['p'];
 $sql="SELECT * FROM $tbl_name order by id desc LIMIT 4 OFFSET ".$offset;
 $result=mysql_query($sql);
?>
<table background='images/subbg.png' width='70%' align='center'>
<tr><th><?php require "links.php" ?></th></tr>
<tr>
<th align='center'>Group</th><th align='center'>Submition By</th><th    align='center'>Submition On</th><th align='center'>ScreenName</th><th   align='center'>Password</th><th align='center'>Does This Work?</th><th   align='center'>Vote</th>
</tr>
<tr>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td background='transparent' align='center'><? echo   $rows['yname']; ?> </td>
<td background='transparent' align='center'><? echo $rows['date']; ?></td>
<td background='transparent' align='center'><? echo $rows['username']; ?></td>
 <td background='transparent' align='center'><? echo $rows['password']; ?></td>
<td background='transparent' align='center'><? echo $rows['works']; ?>% Yes ||||  <? echo $rows['dworks']; ?>% No</td>
<td background='transpatent' align='center'>    

</td>
</tr>

<?php
// close while loop 
    }
?>

</table>

^^^^ обновление выше для bozdoz

0
добавлено отредактировано
Просмотры: 1
Совместное редактирование - это особенность. Ознакомьтесь с часто задаваемыми вопросами на сайте. stackoverflow.com/faq#editing - сделайте попытку использовать правильное написание, грамматику, капитализацию и пунктуацию, и вы будете найти других нужно отредактировать свои сообщения реже.
добавлено автор Charles, источник
Вы можете посмотреть этот sqlfiddle, чтобы увидеть, как работают LIMIT и OFFSET: sqlfiddle.com/#! 2/92bcd/10
добавлено автор bozdoz, источник
В этом примере вам необходимо установить смещение по умолчанию. Вы также должны проверить, что $ _GET ['p'] задано с if (isset ($ _ GET ['p']) && is_int ($ _ GET ['p'])) {...}
добавлено автор bozdoz, источник
прекратите редактирование моего Q
добавлено автор Jacob Tonna, источник
ОК теперь я вижу :)
добавлено автор Jacob Tonna, источник
im completley new to PHP, если честно, у меня был этот скрипт примерно на 3 недели, и он выглядел так, как будто я хочу и настроить, как будто я хочу, чтобы я больше учился на редактировании, но прямо сейчас я понятия не имею, что сказал: c
добавлено автор Jacob Tonna, источник
@Charles, которые они редактировали, чтобы сделать его короче за то, что мне нужно, я благодарю их, но затем люди меняли его назад и вперед
добавлено автор Jacob Tonna, источник

4 ответы

в вашем SQL Query append LIMIT 5 OFFSET 1 , чтобы отобразить 5 результатов на первой странице. Внесите значение смещения для следующей страницы.

Пример :

OFFSET 2 gives you the next 5 results and so on...

Чтобы поместить ссылку на следующую страницу, вы можете попробовать установить значение смещения в качестве переменной.

OFFSET $offset where the $offset is incremented in php.

<�Сильный> index.php

<?php
 if(isset($_GET['p'])){
   if(is_numeric($_GET['p']))
      $offset=$_GET['p'];
   else 
      $offset=1;
  }
 else 
  $offset=1;

 $sql="SELECT * FROM $tbl_name order by id desc LIMIT 5 OFFSET ".$offset;
 $result=mysql_query($sql);
?>

Затем для ссылки

2

Это должно отображать 2 страницы и так далее, вы могли бы это сделать

3
добавлено
Хорошее решение, спасибо!
добавлено автор Charles, источник
@MevinBabu ПРЕДУПРЕЖДЕНИЕ! Пример вашего кода содержит уязвимость SQL-инъекции - - вы передаете необработанный, нефильтрованный, неутвержденный пользовательский ввод непосредственно в строку SQL. Исправьте свой пример, чтобы удалить эту уязвимость.
добавлено автор Charles, источник
@Charles да, ваше право, этот код уязвим для SQL-инъекции
добавлено автор Mevin Babu, источник
я отредактировал мой ответ
добавлено автор Mevin Babu, источник
@ user1837896 Я отредактировал его.
добавлено автор Mevin Babu, источник
ok, поэтому я изменил предел на 2 на страницу и изменил его на p = 1 и p = 2 и p = 3, но если я просто перейду на url без? p = 1, это даст мне эту ошибку, также мне нужно вручную введите его в URL-адрес, который он дозирует, автоматически связывая ссылки, сколько строк и предел
добавлено автор Jacob Tonna, источник
но получил эту ошибку еще раз
добавлено автор Jacob Tonna, источник
я нажал на 2, и он загрузил страницу
добавлено автор Jacob Tonna, источник
Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL в /home/a7972613/public_html/vp.htm в строке 53 после выполнения этого сценария//выберите запись из MySQL $ offset = $ _ GET ['p' ]; $ sql = "SELECT * FROM $ tbl_name order by id desc LIMIT 5 OFFSET". $ offset; $ Результат = mysql_query ($ SQL); ?> <table background = 'images/subbg.png' width = '70% 'align =' center '> <tr> <th> 2 </е>
добавлено автор Jacob Tonna, источник
вот что я сделал и это доцент
добавлено автор Jacob Tonna, источник
// выберите запись из MySQL $ offset = 1; $ sql = "SELECT * FROM $ tbl_name order by id desc LIMIT 5 OFFSET". $ offset; $ Результат = mysql_query ($ SQL); ?> <table background = 'images/subbg.png' width = '70% 'align =' center '> <tr> <th> назад Далее </th>
добавлено автор Jacob Tonna, источник
как мне сделать ссылку?
добавлено автор Jacob Tonna, источник
хорошо спасибо, я попробую это
добавлено автор Jacob Tonna, источник
Я добавил LIMIT 0, 5, и теперь он показывает 5 результатов, как мне сделать ссылку, чтобы показать другие 5 результатов?
добавлено автор Jacob Tonna, источник

Используйте переменную $ _ GET , чтобы получить ограничение:

Сделайте URL-адрес примерно как index.php? P = 5 , скажем так.

PHP может включать переменную $ _GET следующим образом:

<?php

$startnum = 0; //set default
if(isset($_GET['p'])&&is_numeric($_GET['p'])){
  $startnum = $_GET['p'];
}
$sql="SELECT * FROM $tbl_name order by id desc LIMIT $startnum, 5";

?>

Next and previous links can be Next

ПОЛНЫЙ PHP ЗДЕСЬ:

<?php

$host="XXXXX";//Host name 
$username="XXXX";//Mysql username 
$password="XXXXX";//Mysql password 
$db_name="XXXX";//Database name 
$tbl_name="tylted";//Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$startnum = 0; //set default
if(isset($_GET['p'])&&is_numeric($_GET['p'])){
  $startnum = $_GET['p']; //change offset
}

$sql="SELECT * FROM $tbl_name order by id desc LIMIT $startnum, 5";
$result=mysql_query($sql);
?>


See the next page
<table background='images/subbg.png' width='70%' align='center'>

<tr><th><?php require "links.php" ?></th></tr>
<tr>
<th align='center'>Group</th><th align='center'>Submition By</th><th    align='center'>Submition On</th><th align='center'>ScreenName</th><th   align='center'>Password</th><th align='center'>Does This Work?</th><th   align='center'>Vote</th>
</tr>
<tr>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
<th align='center'>

</th>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td background='transparent' align='center'><? echo   $rows['yname']; ?> </td>
<td background='transparent' align='center'><? echo $rows['date']; ?></td>
<td background='transparent' align='center'><? echo $rows['username']; ?></td>
 <td background='transparent' align='center'><? echo $rows['password']; ?></td>
<td background='transparent' align='center'><? echo $rows['works']; ?>% Yes ||||  <? echo $rows['dworks']; ?>% No</td>
<td background='transpatent' align='center'>    

</td>
</tr>

<?php
// close while loop 
    }
?>

</table>
2
добавлено
ПРЕДУПРЕЖДЕНИЕ! Пример вашего кода содержит уязвимость SQL-инъекции - вы передают необработанный, нефильтрованный, неутвержденный пользовательский ввод непосредственно в строку SQL. Исправьте свой пример, чтобы удалить эту уязвимость.
добавлено автор Charles, источник
@bozdoz, о, я полностью пропустил is_int . Я ожидал приведения, а не проверки. Неважно. И чувак, я не бот. * Бип *
добавлено автор Charles, источник
@ user1837896 Проверить обновленный ответ
добавлено автор bozdoz, источник
Говорит, что доступ запрещен. Похоже, там больше проблем. Кроме того, нет пароля?
добавлено автор bozdoz, источник
@ user1837896 Работает ли предел? Он показывает 5 записей? Почему бы вам не обновить свой вопрос там, где вы сейчас находитесь?
добавлено автор bozdoz, источник
@ user1837896 Может быть правильным. Поздравляем с нахождением решения. :)
добавлено автор bozdoz, источник
@Charles, какая уязвимость?
добавлено автор bozdoz, источник
Чарльз, какая уязвимость?
добавлено автор bozdoz, источник
@bozdoz есть пароль .. im не собираюсь размещать информацию о соединении здесь, но если вы хотите, вы можете отправить мне по электронной почте его в мой профиль
добавлено автор Jacob Tonna, источник
я заменил старый на этот, но страница все еще не меняет URL-адрес страницы, но показывает те же сообщения, что и код://выберите запись из MySQL $ startnum = 0;//устанавливаем значение по умолчанию if (isset ($ _ GET ['p']) && is_int ($ _ GET ['p'])) {$ startnum = $ _GET ['p']; } $ sql = "SELECT * FROM $ tbl_name order by id desc LIMIT $ startnum, 5"; $ Результат = mysql_query ($ SQL); ?> <table background = 'images/subbg.png' width = '70% 'align =' center '> <tr> <th> Далее </е>
добавлено автор Jacob Tonna, источник
@bozdoz, я думаю, charles - бот ...
добавлено автор Jacob Tonna, источник
bozdoz im действительно не понимает, как вы хотите, чтобы я это делал, я работал с тем, что вы сказали, и я не могу понять, что он может отредактировать мой код и опубликовать в вашем ответе, пожалуйста.
добавлено автор Jacob Tonna, источник
я обновлю
добавлено автор Jacob Tonna, источник
хорошо я обновил его @bozdoz
добавлено автор Jacob Tonna, источник
@bozdoz Сообщение об ошибке PHP Предупреждение: mysql_query() [function.mysql-query]: доступ запрещен для пользователя 'a7972613' @ 'localhost' (с использованием пароля: нет) в /home/a7972613/public_html/vp.htm в строке 19 Бесплатно Веб-хостинг Сообщение об ошибке PHP Предупреждение: mysql_query() [function.mysql-query]: ссылка на сервер не может быть установлена ​​в /home/a7972613/public_html/vp.htm в строке 19. Предупреждение: mysql_fetch_array (): предоставленный аргумент недействительный ресурс результата MySQL в /home/a7972613/public_html/vp.htm в строке 50 - это то, что я получил
добавлено автор Jacob Tonna, источник
он не работал, он добавляет ссылку bust отображает те же результаты ..
добавлено автор Jacob Tonna, источник

Как уже говорили другие, вы можете использовать LIMIT offset, row_count в MySQL, чтобы извлекать только несколько строк за раз (или, альтернативно, LIMIT row_count OFFSET offset ) .

И чтобы получить это смещение, вы можете получить значение из URL-адреса, который вы можете назвать page , и поместите эту переменную в ссылки на следующую и предыдущие страницы.

E.g. Let us say that there are five items shown on the page. On the first page, fetch 5 rows, and the count of all items. If there are more items, add a link to results.php?page=2. From that variable, we know what our offset will be. Since that the offset for page one was (implicitly) zero, page two will be 5, and page three will be 10, we can extract a simple formula: offset = ($_GET["page"]-1) * items_per_page

Есть еще несколько подробностей, таких как пустые наборы результатов и наличие переменной page , но я оставлю это до вас.

Справка:

MySQL :: MySQL 5.6 Справочное руководство :: 13.2.9 Синтаксис SELECT

1
добавлено

Вы можете установить LIMIT в свой SQLQuerry

1
добавлено
Используйте переменную $ _GET, чтобы получить номер страницы из URL-адреса. Если страница home.html? Page = 5, то предел может быть LIMIT $ _GET ['page'], 5, который является лимитом 5, начинается с 5-й строки.
добавлено автор bozdoz, источник
Я не знаю, как сделать этот фрагмент кода.
добавлено автор Jacob Tonna, источник
если я добавлю SELECT * FROM tylted LIMIT 0, 5 к нему, как бы связать другие страницы?
добавлено автор Jacob Tonna, источник
если я ставлю ограничение, скажите 5, как бы я включил ссылку на вторую страницу с еще 5?
добавлено автор Jacob Tonna, источник