我正在尝试使用PHP函数显示国家/地区列表。
这是我正在检索的数据库值。的(裁剪)
这是我正在检索数据的功能。
代码:
public function get_countries() {
$list_country = array();
$query = $this->db->prepare("SELECT name FROM country");
$query->execute();
while($r = $query->fetch(PDO::FETCH_ASSOC)) {
$list_country[] = $r['name'];
}
return $list_country;
}
然后这是我回显所有数据的代码。
<?php
while (list($country) = $general->get_countries()) {
echo $country;
}
?>
不幸的是,它只是一遍又一遍地回响相同的值。
任何解决方案?就像一遍又一遍地回复所有数据而不是相同的数据一样?
答案 0 :(得分:5)
<?php
$country_array = $general->get_countries();
foreach ($country_array as $country) {
echo $country;
}
?>
您不需要while()
,因为您已经提取了所有get_countries()
功能的国家/地区。此外,使用list()
,您只检索n
数组元素,其中n
是list()
函数内的变量数。
因为每次读取国家/地区内容的db函数以及每次检索相同值(第一个)时都会调用
答案 1 :(得分:1)
$ query = $ PDO-&gt; prepare(&#34; SELECT blah FROM table&#34;);
$ country = array();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$country[] = $row['blah'];
}
该代码对我有用。如果查询返回null,您可以设置一些异常,这将抑制while循环中的警告。
希望有所帮助