嘿,我有一段代码很好用。但是当我用DISTINCT
<?php
$category = $_GET["state"];
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $results_per_page;
$sql = "SELECT DISTINCT CITY
FROM $datatable
WHERE STATE='$category'
ORDER BY CITY ASC LIMIT $start_from, $results_per_page" ;
$rs_result = $conn->query($sql);
?>
<table border="1" cellpadding="4" width="100%">
<tr>
<?php
while($row = $rs_result->fetch_assoc()) {
?>
<tr>
<td> <a href="browsepage2.php?state=<? echo $row["STATE"]; ?>&city=<? echo $row["CITY"]; ?>" ><? echo $row["CITY"]; ?></a></td>
</tr>
<?php
};
?>
</table>下一页行不会显示?我对这个问题不太确定。下一页的代码如下。
<?php
$category = $_GET["state"];
$city= $_GET["city"];
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $results_per_page;
$sql = "SELECT *
FROM $datatable
WHERE STATE='$category'
AND CITY='$city'
ORDER BY PROVNAME ASC LIMIT $start_from, $results_per_page" ;
$rs_result = $conn->query($sql);
?>
<table border="1" cellpadding="4" width="100%">
<tr>
<?php
while($row = $rs_result->fetch_assoc()) {
?>
<tr>
<td> <a href="browsepage2.php?state=<? echo $row["STATE"]; ?>&city=<? echo $row["CITY"]; ?>&shop=<? echo $row["PROVNAME"]; ?>" ><? echo $row["PROVNAME"]; ?></a></td>
</tr>
<?php
};
?>
</table>我有点不确定问题出在哪里,但如果我不使用distinct,我就能让它正常工作。
发布于 2017-03-24 03:37:29
$sql = "SELECT DISTINCT CITY
FROM ...在这里,您选择一个列,城市。
但是,链接格式代码取决于查询结果,包括列状态。
<a href="browsepage2.php?state=<? echo $row["STATE"]; ?>&city=<? echo $row["CITY"]; ?>" >没有它,您创建的链接将如下所示:
<a href="browsepage2.php?state=&city=Schenectady">然后下一页将尝试获取请求参数'state‘,并发现它是空的。如果请求参数为空,则不存在默认状态。
$category = $_GET["state"];这使得下一页的SQL查询:
$sql = "SELECT DISTINCT CITY
FROM $datatable
WHERE STATE=''
ORDER BY CITY ASC LIMIT $start_from, $results_per_page" ;我猜您的数据库中没有与state=''匹配的记录。
顺便说一句,你应该开始使用带有参数占位符的预先准备好的查询,以防止你的网页被黑。读取How can I prevent SQL injection in PHP?
https://stackoverflow.com/questions/42990829
复制相似问题