我的代码:
.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'];
}
}
?>
返回未找到的结果。请帮我解决这个问题。
由于
维卡斯
答案 0 :(得分:0)
这不符合您的期望:
SELECT distinct bankName, state, district
FROM table
where bankName = '$bank'
group by state and district
---------------^
在许多数据库中,这会导致错误,因为state
和district
不是布尔表达式。这在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;
感谢大家的帮助:)