By this code I can able to retrieve the first five records from database.
But I need to display remaining 5 rows from database after pressing the pagination arrow. I am doing one video sharing website same as like Youtube.
<?php
include "config.php";
$q = mysql_query("SELECT * FROM register r
JOIN videos v ON r.id = v.video_id
ORDER BY r.id LIMIT 5") or die (mysql_error());
$headers = $col = "";
$row=mysql_num_rows($q);
$s=null;
echo "<h1> Top Most Videos </h1>";
while ($row = mysql_fetch_array($q))
{
if($row['id']!=$s)
{
$s = $row['id'];
echo "<div class='property'>";
echo "<div class='property1' >";
echo "<a href='#'><video src=\"".$row['path']."\" height='100' width='170' style= margin:5px; controls='controls'></video></a>";
echo "</div>";
echo "<div class='property2'>";
echo $row['videoname'];
echo "</div>";
echo "<div class='property3'>";
echo "<br/>";
echo "by:";
echo $row['name'];
echo "<br/>";
echo "</div>";
echo "<div class='property4'>";
echo $row['views'].' views ';
echo $row['time'].' year ago';
echo "</div>";
echo "</div>";
}
}
echo "<input type='button' class='btn1'>";
?>
</div>
Prefer to javascript,php,mysql
By this code I can able to retrieve the first five records from database.
But I need to display remaining 5 rows from database after pressing the pagination arrow. I am doing one video sharing website same as like Youtube.
<?php
include "config.php";
$q = mysql_query("SELECT * FROM register r
JOIN videos v ON r.id = v.video_id
ORDER BY r.id LIMIT 5") or die (mysql_error());
$headers = $col = "";
$row=mysql_num_rows($q);
$s=null;
echo "<h1> Top Most Videos </h1>";
while ($row = mysql_fetch_array($q))
{
if($row['id']!=$s)
{
$s = $row['id'];
echo "<div class='property'>";
echo "<div class='property1' >";
echo "<a href='#'><video src=\"".$row['path']."\" height='100' width='170' style= margin:5px; controls='controls'></video></a>";
echo "</div>";
echo "<div class='property2'>";
echo $row['videoname'];
echo "</div>";
echo "<div class='property3'>";
echo "<br/>";
echo "by:";
echo $row['name'];
echo "<br/>";
echo "</div>";
echo "<div class='property4'>";
echo $row['views'].' views ';
echo $row['time'].' year ago';
echo "</div>";
echo "</div>";
}
}
echo "<input type='button' class='btn1'>";
?>
</div>
Prefer to javascript,php,mysql
Share edited Apr 23, 2014 at 9:38 Jurik 3,2641 gold badge33 silver badges52 bronze badges asked Apr 23, 2014 at 9:19 user3422452user3422452 571 gold badge2 silver badges5 bronze badges6 Answers
Reset to default 5LIMIT 5
takes the first 5 rows from your results (position 0, 1, 2, 3 and 4 from your result set).
LIMIT 5,5
takes 5 rows from your result set but starts at position 5. So you will get the 'next' 5 results that are at position 5, 6, 7, 8 and 9.
Example: If your result without LIMIT is like:
-----------------
| ID | video |
-------+---------
| 1 | cat |
-------+---------
| 2 | dog |
-------+---------
| 3 | bird |
-------+---------
| 4 | cow |
-------+---------
| 5 | snake |
-------+---------
| 6 | fish |
-------+---------
| 7 | mouse |
-------+---------
| 8 | shark |
-------+---------
| 9 | seal |
-------+---------
| 10 | rabbit |
-----------------
And now you use LIMIT 5
or LIMIT 5, 0
-----------------
| ID | video |
-------+---------
| 1 | cat |
-------+---------
| 2 | dog |
-------+---------
| 3 | bird |
-------+---------
| 4 | cow |
-------+---------
| 5 | snake |
-------+---------
And now you use LIMIT 5, 5
-----------------
| ID | video |
-------+---------
| 6 | fish |
-------+---------
| 7 | mouse |
-------+---------
| 8 | shark |
-------+---------
| 9 | seal |
-------+---------
| 10 | rabbit |
-----------------
You can make use of LIMIT and offset in limit clause
LIMIT 5,5
You can use LIMIT and OFFSET concept of DATABASE to provide Pagination in the application. Or even you can use DATATABLE plugin of Jquery to provide Pagination.
Try this your script
<?php
$sql = "SELECT * FROM register r JOIN videos v ON r.id = v.video_id ORDER BY r.id desc";
$result = mysql_query($sql);
$no = mysql_num_rows($result);
if (isset($_GET['page'])) {
$page = preg_replace('#[^0-9]#i', '', $_GET['page']);
} else {
$page = 1;
}
$itemsPerPage = 5;
$lastPage = ceil($no / $itemsPerPage);
if ($page < 1) {
$page = 1;
} else if ($page > $lastPage) {
$page = $lastPage;
}
$centerPages = "";
$sub1 = $page - 1;
$sub2 = $page - 2;
$add1 = $page + 1;
$add2 = $page + 2;
if ($page == 1) {
$centerPages .= ' <span class="pagNumActive">' . $page . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $add1 . '">' . $add1 . '</a> ';
} else if ($page == $lastPage) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $page . '</span> ';
} else if ($page > 2 && $page < ($lastPage - 1)) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $sub2 . '">' . $sub2 . '</a> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $page . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $add1 . '">' . $add1 . '</a> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $add2 . '">' . $add2 . '</a> ';
} else if ($page > 1 && $page < $lastPage) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $page . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $add1 . '">' . $add1 . '</a> ';
}
$limit = 'limit ' .($page - 1) * $itemsPerPage .',' .$itemsPerPage;
$sql2 = mysql_query("SELECT * FROM register r JOIN videos v ON r.id = v.video_id ORDER BY r.id desc $limit");
$paginationDisplay = "";
if ($lastPage != "1"){
$paginationDisplay .= 'Page <strong>' . $page . '</strong> of ' . $lastPage. ' ';
if ($page != 1) {
$previous = $page - 1;
$paginationDisplay .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $previous . '" style="text-decoration:none;"> Previous </a> ';
}
$paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
if ($page != $lastPage) {
$nextPage = $page + 1;
$paginationDisplay .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $nextPage . '" style="text-decoration:none;"> Next</a> ';
}
}
echo "<h1> Top Most Videos </h1>";
while ($row = mysql_fetch_array($sql2))
{
if($row['id']!= '')
{
$s = $row['id'];
echo "<div class='property'>";
echo "<div class='property1' >";
echo "<a href='#'><video src=".$row['path']." height='100' width='170' style= margin:5px; controls='controls'></video></a>";
echo "</div>";
echo "<div class='property2'>";
echo $row['videoname'];
echo "</div>";
echo "<div class='property3'>";
echo "<br/>";
echo "by:";
echo $row['name'];
echo "<br/>";
echo "</div>";
echo "<div class='property4'>";
echo $row['views'].' views ';
echo $row['time'].' year ago';
echo "</div>";
echo "</div>";
}
}
echo "<input type='button' class='btn1'>";
?>
you would have to make it dynamic. The limit and offset should not be a static value.
You have to increase the offset every time you change your page number.
$page_number = $_GET['page']; // page number 2
$limit = 5; // How many rows to display per page
$offset = $limit * $page_number; // this displays rows from 10 - 15
$q = mysql_query("SELECT * FROM register r
JOIN videos v ON r.id = v.video_id
ORDER BY r.id LIMIT $limit OFFSET $offset") or die (mysql_error());
Using a link we can send the page number to the query page
<a href="?page=2">Next</a>
for next five records you have to change your query. take id of last row and write query with where clause for example id >'id last 5th row'.
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745054589a4608585.html
评论列表(0条)