gpt4 book ai didi

php - 数据库中的数据未显示

转载 作者:行者123 更新时间:2023-11-29 11:48:02 24 4
gpt4 key购买 nike

我是 php 新手,正在尝试将网站从 asp 转换为 php。 asp站点使用ms access数据库,新站点将使用mysql。

我正在尝试根据表字段中的不同名称以表单生成一个下拉列表。显示的页面显示了该框并且没有给我任何错误消息,但表单列表未填充,尽管我知道应该有几个限定名称。

这是我的代码:

try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname;", $username, $password);
$sql = $dbh->prepare("SELECT DISTINCT city FROM TABLE 1 WHERE state = :state1 ORDER BY city ASC");
$sql->execute(array(':state1' => $state1));

echo '<form method="get" action="city.php" name="search"> ';
echo '<input type="hidden" name="county" value="' . $state1 . '">';
echo '<select name="city">';

foreach($sql as $row) {

echo '<option value="'. $row['city'] . '">'. $row['city'] . '</option>';
}
echo '</select>';
echo '<input type="submit" name="go" value="Go">&nbsp;&nbsp;';
echo '</form>';

$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}

谁能告诉我我的代码中是否存在明显的错误以及哪里出了问题?

结果可以在测试页面上看到:http://212.48.91.91/a1touristguide.com/ireland/county.php?county=Cavan

提前非常感谢,

托格·波特

最佳答案

问题是,您正在执行查询,但没有捕获结果集。使用 fetchAll() 来捕获整个结果集行作为数组并循环遍历它,如下所示:

// your code

$sql->execute(array(':state1' => $state1));
$result = $sql->fetchAll();

echo '<form method="get" action="city.php" name="search"> ';
echo '<input type="hidden" name="county" value="' . $state1 . '">';
echo '<select name="city">';
while($row = array_shift($result)){
echo '<option value="'. $row['city'] . '">'. $row['city'] . '</option>';
}
echo '</select>';

// your code

以下是相关引用资料:

关于php - 数据库中的数据未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34576884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com