首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYsql及其独特用法

问MYsql及其独特用法
EN

Stack Overflow用户
提问于 2017-03-24 03:20:04
回答 1查看 70关注 0票数 1

嘿,我有一段代码很好用。但是当我用DISTINCT

代码语言:javascript
复制
<?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>

下一页行不会显示?我对这个问题不太确定。下一页的代码如下。

代码语言:javascript
复制
<?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,我就能让它正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 03:37:29

代码语言:javascript
复制
$sql = "SELECT DISTINCT CITY 
    FROM ...

在这里,您选择一个列,城市。

但是,链接格式代码取决于查询结果,包括列状态。

代码语言:javascript
复制
<a href="browsepage2.php?state=<? echo $row["STATE"]; ?>&city=<? echo $row["CITY"]; ?>" >

没有它,您创建的链接将如下所示:

代码语言:javascript
复制
<a href="browsepage2.php?state=&city=Schenectady">

然后下一页将尝试获取请求参数'state‘,并发现它是空的。如果请求参数为空,则不存在默认状态。

代码语言:javascript
复制
$category = $_GET["state"];

这使得下一页的SQL查询:

代码语言:javascript
复制
$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?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42990829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档