简体   繁体   English

PHP的MySQL分页和两个日期之间的搜索

[英]php mysql pagination and search between two dates

when i try to search between two dates on pagination pages, the result come on the first page , and when press next nothing shown 当我尝试在分页页面上的两个日期之间进行搜索时,结果显示在第一页上,而按next时则不显示任何内容

please find the code and try to help please , note: i google it but just find pagination with search by name 请找到代码并尝试提供帮助,请注意:我用google搜索,但只是通过名称搜索找到分页

 <script> src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(document).ready(function() { $("tr:odd").addClass("odd"); }); </script> 
 <style type="text/css"> .odd{ background-color:#ccc; } @charset "utf-8"; div.pagination { padding: 3px; margin: 3px; } div.pagination a { padding: 2px 5px 2px 5px; margin: 2px; border: 1px solid #AAAADD; text-decoration: none; /* no underline */ color: #000099; } div.pagination a:hover, div.pagination a:active { border: 1px solid #000099; color: #000; } div.pagination span.current { padding: 2px 5px 2px 5px; margin: 2px; border: 1px solid #000099; font-weight: bold; background-color: #000099; color: #FFF; } div.pagination span.disabled { padding: 2px 5px 2px 5px; margin: 2px; border: 1px solid #EEE; color: #DDD; } </style> 
 <head> <meta charset="utf-8"> <title>Untitled Document</title> </head> <body> <form action="topics1.php" method="post"> <input type="date" name="date"/> <input type="date" name="date1"/> <input type="submit" value="search"/> </form> <br/> <?php /* date SQL isset */ $date1 = isset ($_POST['date']) ? $_POST['date'] : ""; $date2 = isset ($_POST['date1']) ? $_POST['date1'] : ""; /* Place code to connect to your DB here. */ $connect=mysqli_connect('localhost','root','123456','liwa'); mysqli_set_charset($connect,'utf8mb4'); // include your code to connect to DB. $tbl_name="sat"; //your table name // How many adjacent pages should be shown on each side? $adjacents = 3; /* First get total number of rows in data table. If you have a WHERE clause in your query, make sure you mirror it here. */ $query = "SELECT COUNT(*) as num FROM $tbl_name "; $total_pages = mysqli_fetch_array(mysqli_query($connect,$query)); $total_pages = $total_pages['num']; /* Setup vars for query. */ $targetpage = "topics1.php"; //your file name (the name of this file) $limit = 3; //how many items to show per page $page =isset ($_GET['page']) ? $_GET['page'] : ""; if($page) $start = ($page - 1) * $limit;//2-1*10 page 2 //first item to display on this page else $start = 0; //if no page var is given, set start to 0 /* Get data. */ $sql = "SELECT * FROM sat WHERE date BETWEEN '$date1' AND '$date2' LIMIT $start, $limit "; $result = mysqli_query($connect,$sql); /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is page - 1 $next = $page + 1; //next page is page + 1 $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up. $lpm1 = $lastpage - 1; //last page minus 1 /* Now we apply our rules and draw the pagination object. We're actually saving the code to a variable in case we want to draw it more than once. */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class=\\"pagination\\">"; //previous button if ($page > 1) $pagination.= "<a href=\\"$targetpage?page=$prev\\"><< previous</a>"; else $pagination.= "<span class=\\"disabled\\"><< previous</span>"; //pages if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$targetpage?page=$counter\\">$counter</a>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$targetpage?page=$counter\\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\\"$targetpage?page=$lpm1\\">$lpm1</a>"; $pagination.= "<a href=\\"$targetpage?page=$lastpage\\">$lastpage</a>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<a href=\\"$targetpage?page=1\\">1</a>"; $pagination.= "<a href=\\"$targetpage?page=2\\">2</a>"; $pagination.= "..."; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$targetpage?page=$counter\\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\\"$targetpage?page=$lpm1\\">$lpm1</a>"; $pagination.= "<a href=\\"$targetpage?page=$lastpage\\">$lastpage</a>"; } //close to end; only hide early pages else { $pagination.= "<a href=\\"$targetpage?page=1\\">1</a>"; $pagination.= "<a href=\\"$targetpage?page=2\\">2</a>"; $pagination.= "..."; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$targetpage?page=$counter\\">$counter</a>"; } } } //next button if ($page < $counter - 1) $pagination.= "<a href=\\"$targetpage?page=$next\\">next >></a>"; else $pagination.= "<span class=\\"disabled\\">next >></span>"; $pagination.= "</div>\\n"; } //this is the loop ?> <?php echo "<table border='1' width='50%' cellpadding='0' cellspacing='0'>"; while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){ echo"<tr>"; echo"<td>"; echo $row['Suggestions']; echo"</td>"; echo"<td>"; echo $row['date']; echo"</td>"; echo"</tr>"; } echo "</table>"; ?> <?=$pagination?> </body> </html> 

i found the solution for my question, and thanks anyway 我为我的问题找到了解决方案,还是谢谢

 <body> <?php ini_set('display_errors', 1); error_reporting(~0); $date1 = null; if(isset($_POST["date1"])) { $date1 = $_POST["date1"]; } if(isset($_GET["date1"])) { $date1 = $_GET["date1"]; } $date2 = null; if(isset($_POST["date2"])) { $date2 = $_POST["date2"]; } if(isset($_GET["date2"])) { $date2 = $_GET["date2"]; } ?> <form name="frmSearch" method="post" action="<?php echo $_SERVER['SCRIPT_NAME'];?>"> <table width="599" border="1"> <tr> <th>Keyword <input name="date1" type="date" id="txtKeyword" value="<?php echo $date1;?>"> <input name="date2" type="date" id="txtKeyword" value="<?php echo $date2;?>"> <input type="submit" value="Search"> <br/> <?php /* date SQL isset */ /* Place code to connect to your DB here. */ $connect=mysqli_connect('localhost','root','123456','liwa'); mysqli_set_charset($connect,'utf8mb4'); // include your code to connect to DB. $tbl_name="sat"; //your table name // How many adjacent pages should be shown on each side? $adjacents = 3; /* First get total number of rows in data table. If you have a WHERE clause in your query, make sure you mirror it here. */ $query = "SELECT COUNT(*) as num FROM $tbl_name "; $total_pages = mysqli_fetch_array(mysqli_query($connect,$query)); $total_pages = $total_pages['num']; /* Setup vars for query. */ $targetpage = "topics1.php"; //your file name (the name of this file) $limit = 3; //how many items to show per page $page =isset ($_GET['page']) ? $_GET['page'] : ""; if($page) $start = ($page - 1) * $limit;//2-1*10 page 2 //first item to display on this page else $start = 0; //if no page var is given, set start to 0 /* Get data. */ $sql = "SELECT * FROM sat WHERE date BETWEEN '$date1' AND '$date2' LIMIT $start, $limit "; $result = mysqli_query($connect,$sql); /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is page - 1 $next = $page + 1; //next page is page + 1 $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up. $lpm1 = $lastpage - 1; //last page minus 1 /* Now we apply our rules and draw the pagination object. We're actually saving the code to a variable in case we want to draw it more than once. */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class=\\"pagination\\">"; //previous button if ($page > 1) $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$prev&date1=$date1&date2=$date2\\"><< previous</a>"; else $pagination.= "<span class=\\"disabled\\"><< previous</span>"; //pages if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$counter&date1=$date1&date2=$date2\\">$counter</a>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$counter&date1=$date1&date2=$date2\\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$lpm1&date1=$date1&date2=$date2\\">$lpm1</a>"; $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$lastpage&date1=$date1&date2=$date2\\">$lastpage</a>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=1&date1=$date1&date2=$date2\\">1</a>"; $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=2&date1=$date1&date2=$date2\\">2</a>"; $pagination.= "..."; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$counter&date1=$date1&date2=$date2\\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$lpm1&date1=$date1&date2=$date2\\">$lpm1</a>"; $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$lastpage&date1=$date1&date2=$date2\\">$lastpage</a>"; } //close to end; only hide early pages else { $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=1&date1=$date1&date2=$date2\\">1</a>"; $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=2&date1=$date1&date2=$date2\\">2</a>"; $pagination.= "..."; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\\"current\\">$counter</span>"; else $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$counter&date1=$date1&date2=$date2\\">$counter</a>"; } } } //next button if ($page < $counter - 1) $pagination.= "<a href=\\"$_SERVER[SCRIPT_NAME]?page=$next&date1=$date1&date2=$date2\\">next >></a>"; else $pagination.= "<span class=\\"disabled\\">next >></span>"; $pagination.= "</div>\\n"; } //this is the loop ?> <?php echo "<table border='1' width='50%' cellpadding='0' cellspacing='0'>"; while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){ echo"<tr>"; echo"<td>"; echo $row['Suggestions']; echo"</td>"; echo"<td>"; echo $row['date']; echo"</td>"; echo"</tr>"; } echo "</table>"; ?> <?=$pagination?> </body> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM