我试过下面的代码。我用php mysql和ajex开发了这个系统。 $ id = $ _GET [' country']; 这个国家/地区值显示成功,但mysqli_fetch_array有错误可以解决这个问题我收到错误消息我粘贴在标题中。 感谢
<?php
if(isset($_GET['country']) && !empty($_GET['country']))
{
$con = mysqli_connect("localhost","root","","ganudenunew");
$id = $_GET['country'];
$query = "select name from city where d_id = '$id'";
$da = mysqli_query($con,$query);
$co = mysqli_num_rows($da);
while($row = mysqli_fetch_array($co))
echo '<option value="'.$row['c_id'].'" >'.$row['name'].'</option>';
}
?>
答案 0 :(得分:2)
$co = mysqli_num_rows($da);
这是总行数,但您需要全部获取数据
只需更改
while($row = mysqli_fetch_array($co))
到
while($row = mysqli_fetch_array($da))
<强> 1。需要选择c_id
所以这是最终代码
首先更新sql以便更新它
$query = "select name from city where d_id = '$id'";
到
$query = "select name,c_id from city where d_id = '$id'";
然后这是while循环代码
while($row = mysqli_fetch_array($da))
{
echo '<option value="' . $row['c_id'] . '" >' . $row['name'] . '</option>';
}
答案 1 :(得分:0)
原因: - $co
包含结果集对象$da
中存在的记录数,而不是记录本身。
<强> 解决方案: - 强>
变化: -
while($row = mysqli_fetch_array($co))
要: -
while($row = mysqli_fetch_array($da))
除了像这样更改查询: -
$query = "select name,c_id from city where d_id = '$id'";
你很高兴。
重要提示: - 您的查询对SQL INJECTION
是有效的。请阅读prepared statements
并使用它们。
参考: - mysqli::prepare