我正在尝试使用分页显示db记录,因此我遵循php paging教程并且其工作正常。现在我想显示两个日期之间的差异记录。我的HTML就像
<html>
<body>
<form method="post" name="Form1" >
Startdate : <input name="startdate" type="text" id="datepicker" />
Enddate : <input name="enddate" type="text" id="datepicker1" />
<input type="submit" name="submit" value="submit" />
</form>
</body>
我在提交按钮中尝试了上面的代码
<?php
if (isset($_POST['submit']))
{
include 'connection.php';
$startdate=$_POST['startdate'];
$enddate=$_POST['enddate'];
$rec_limit = 10;
/* Get total number of records */
$sql = "SELECT COUNT(*) as num FROM tblname";
$retval= mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
$row = mysql_fetch_array($retval, MYSQL_NUM );
$rec_count= $row[0];
if( isset($_GET{'page'}) )
{
$page = $_GET{'page'} + 1;
$offset= $rec_limit * $page ;
}
else
{
$page = 0;
$offset= 0;
}
$left_rec= $rec_count - ($page * $rec_limit);
$sql = "SELECT * FROM tblname Where start = '$startdate' AND end <= 'enddate' LIMIT $offset, $rec_limit ";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('myquery table failed: ' . mysql_error());
}
echo "<table border=1 >"; // start a table tag in the HTML
echo "<tr>";
echo "<td> Start </td>";
echo "<td>End</td>";
echo "</tr>";
while($row = mysql_fetch_assoc($retval))
{
echo "<tr><td>{$row['start']} <br> </td>".
"<td>{$row['end']} <br> </td>";
}
if( $page > 0 )
{
$last = $page - 2;
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$last\">Last</a> |";
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$page\">Next</a>";
echo "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}?page=$page\">";
echo '<input type="submit" value="Next" class="button">';
echo '</form>';
}
else if( $page == 0 )
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$page\">Next</a>";
}
else if( $left_rec < $rec_limit )
{
$last = $page - 2;
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$last\">Last</a>";
}
mysql_close($conn);
}
?>
当我尝试上面的代码时,第一次显示10条记录,然后显示空白屏幕。我在网上搜索但无法找到这个问题的原因。请帮助我实现这一目标。
答案 0 :(得分:1)
使用$_REQUEST
代替$_POST
,因为您为下一个和最后一个链接使用了标记。您需要在标记链接中传递日期和日期。
热门if
条件:
if (isset($_REQUEST['startdate']) && isset($_REQUEST['enddate'])){
include 'connection.php';
$startdate=$_REQUEST['startdate'];
$enddate=$_REQUEST['enddate'];
//your codes
}
在Next和Prev链接中添加日期,如下所示
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$last&startdate=$startdate&enddate=$enddate\">Last</a> |";