0
我在PHP中做了一些分页,但我遇到了一些问题。我做了分页,一切正常,但我想要的是在页面上添加一个表单,用户可以在每个页面上输入他想要的项目数量。问题是,当我输入页数(例如3)时,它第一次正常工作并列出3个项目,但是当我点击“下一页”时,它又列出了默认数量的元素(2)。我已经搜索了一切,但都找不到什么问题。我对PHP有点新,所以我想我还没有得到一些东西,但是我希望看到这个并告诉我你的想法对你来说不是太麻烦。提前致谢! 我做了这样的:
形式:
<?php
print("
<form style='padding-left:5px;' method='get'>Broj komponenti po stranici:<input type='text' name='cpp' /><input class='button3' type='submit' name='cppb' value='Promijeni' /></form>
");
检查是否有存储在CPP一些事情:
$rec_limit = ($_GET['cpp']);
if(!(isset($_GET['cpp']))) { $rec_limit = 2; } //if there is no cpp set, let it be 2 (default)
这里是数据库和分页部分(我不认为这是造成麻烦的部分):
$sql = "SELECT count(id) FROM komponenta ";
$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];
$max_pages = ($rec_count/$rec_limit) -1;
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 komponenta ".
"LIMIT $offset, $rec_limit";
$retval = mysql_query($sql, $conn);
if(!$retval) {
die('Could not get data: ' . mysql_error());
}
print("<TABLE class='tablica' border=‘1’>");
print("<TR>");
print("<TD></TD>");
print("<TD>Vrsta</TD>");
print("<TD>Proizvođač</TD>");
print("<TD>Frekv</TD>");
print("<TD>Izlazna</TD>");
print("<TD>Dobavljač</TD>");
print("<TD>Status</TD>");
print("<TD>Datum kupnje</TD>");
print("<TD>Datum zaprimanja</TD>");
print("<TD>Opis</TD>");
print("<TD>Napomena</TD>");
print("<TD>Komada</TD>");
print("<TD>Metara</TD>");
print("</TR>");
$br=0;
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
print("<TR>");
print("<TD>". $br . "</TD>");
print("<TD>". $row["1"]. "</TD>");
print("<TD>" . $row["2"]. "</TD>");
print("<TD>" . $row["3"]. "</TD>");
print("<TD>" . $row["4"]. "</TD>");
print("<TD>" . $row["5"]. "</TD>");
print("<TD>" . $row["6"]. "</TD>");
print("<TD>" . $row["7"]. "</TD>");
print("<TD>" . $row["8"]. "</TD>");
print("<TD>" . $row["9"]. "</TD>");
print("<TD>" . $row["10"]. "</TD>");
print("<TD>" . $row["11"]. "</TD>");
print("<TD>" . $row["12"]. "</TD>");
print("</TR>");
$br++;
}
print("</TABLE>");
这里是一个困扰的部分我:
if($page >= $max_pages) {
$last = $page - 2;
echo "<b class='paragraf1'>Page: ". $page ." </b><a class='button3' href=\"protected_page.php?page=$last?cpp=$rec_limit\"><text class='buttontxt'>Last " . $rec_limit . " Records</text></a>";
/*with ?cpp=$rec_limit i set the url
(when i press "next") to have for eg ..."?cpp=3"... and it does appear so,
but the $_GET['cpp'] from the beggining of code obviously doesn't read this..
Well, at least it doesn't store it into $rec_limit*/
} else if($page > 0) {
$last = $page - 2;
echo "<b class='paragraf1'>Page: ". $page ." </b><a class='button3' href=\"protected_page.php?page=$last?cpp=$rec_limit\"><text class='buttontxt'>Last " . $rec_limit . " Records</text></a> ";
echo "<a class='button3' href=\"protected_page.php?page=$page?cpp=$rec_limit\"><text class='buttontxt'>Next " . $rec_limit . " Records</text></a>";
} else if($page == 0) {
echo "<b class='paragraf1'>Page: ". $page ." </b><a class='button3' href=\"protected_page.php?page=$page?cpp=$rec_limit\"><text class='buttontxt'>Next " . $rec_limit . " Records</text></a>";
}
哦,我的上帝,你是在跟我开玩笑。我在这上面花了大约3个小时。我是一个小菜鸟,我应该知道这一点。非常感谢你!我爱你! – user3243547
当你的声望是911时,你保存了@ user3243547的生命。这很有趣。现在我要用锐利的眼神来解决它。 – Floris
hehehheheehe谢谢你们:) – CodeBird