如何使用MysQL获取一个州的区域

时间:2015-10-06 10:17:26

标签: php mysql

我的代码:

.visuallyhidden
{
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

以上代码使用get值正常工作并回显银行名称和州名称。 我一直试图运行另一个mysql查询来获取特定银行所选州的所有地区列表。例如,有一家名为ABC的银行在一个名为德里的州内有多个分支机构,其中德里分为8个区。所以我想取一下ABC银行德里的所有8区名单。 为此,我使用以下代码:

<?php           
$con = mysqli_connect('localhost','dbuser','password','dbname');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
$state = str_replace('-',' ',$_GET['state']);
$bank = str_replace('-',' ',$_GET['bank']);
$sql="SELECT * FROM table WHERE state='$state' AND bankName='$bank'";   
$result = mysqli_query($con,$sql);      
$rowcount=mysqli_num_rows($result); 
if ($result->num_rows > 0) {                    
// output data of each row
while($row = $result->fetch_assoc()) {  
$bank = $row['bankName'];
$district = $row['district'];
$state = $row['state'];
}
}
?>

返回未找到的结果。请帮我解决这个问题。

由于

维卡斯

2 个答案:

答案 0 :(得分:0)

这不符合您的期望:

SELECT distinct bankName, state, district
FROM table
where bankName = '$bank'
group by state and district
---------------^

在许多数据库中,这会导致错误,因为statedistrict不是布尔表达式。这在MySQL中是允许的。基本上,它返回true或false,具体取决于字符串是否为MySQL的“true”值或“false”值。 (我认为MySQL会将它们转换为数字并将它们与0进行比较,因此如果值以字母开头,则结果将始终为false;但这并不重要。)

你想要一个逗号:

SELECT distinct bankName, state, district
FROM table
where bankName = '$bank'
group by state, district;

但是,您GROUP BY根本不需要DISTINCT。所以,摆脱一个或另一个:

SELECT distinct bankName, state, district
FROM table
where bankName = '$bank';

此外,您应养成使用参数化查询的习惯,而不是在查询字符串中嵌入值。

答案 1 :(得分:0)

我终于使用以下方法修复了它: $sql="SELECT {BANKNAME {1}} {状态{1}} {区{1}} {区{1}} {ifsccodes {1}} {状态{1}} district`&#34 ;;&# 39;

感谢大家的帮助:)