返回数组函数的n值并在while循环PHP中列出

时间:2014-04-04 08:12:29

标签: php loops

我正在尝试使用PHP函数显示国家/地区列表。

这是我正在检索的数据库值。的(裁剪)

enter image description here

这是我正在检索数据的功能。

代码:

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;
    }
?>

不幸的是,它只是一遍又一遍地回响相同的值。

enter image description here

任何解决方案?就像一遍又一遍地回复所有数据而不是相同的数据一样?

2 个答案:

答案 0 :(得分:5)

<?php
    $country_array = $general->get_countries();
    foreach ($country_array as $country) {
        echo $country;
    }
?>

您不需要while(),因为您已经提取了所有get_countries()功能的国家/地区。此外,使用list(),您只检索n数组元素,其中nlist()函数内的变量数。

那么,为什么每次都得到相同的值?

因为每次读取国家/地区内容的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循环中的警告。

希望有所帮助