在while循环中数组

时间:2019-01-24 10:01:43

标签: php mysql arrays

我创建了一个从mysql数据库读取数据的函数。

我想将数据放入数组,并在PHP函数之外读取它。

function showCategory($con) {
    $sql = "SELECT * FROM kategorien";
    $kategorien = array();     

    $result = $con->query($sql);
    while($row = $result->fetch_assoc()) {
        $kategorien[] = $row["kategorie"];
        return $kategorien;
    }   
}

要从函数外部加载数据:

$kategorien = showCategory($con);
echo $kategorien['kategorie'][0];

它不起作用。怎么了?

2 个答案:

答案 0 :(得分:2)

return $kategorien; 

将退出循环和函数,因此请将其移至函数末尾而不是循环中。

function showCategory($con) {
    $sql = "SELECT kategorie FROM kategorien";
    $kategorien = array();     

    $result = $con->query($sql);
    while($row = $result->fetch_assoc()) {
        $kategorien[] = $row["kategorie"];
    }   
    return $kategorien;
}

如果您只需要使用一些列名,那么也不必指定*。

使用...显示数据

$kategorien = showCategory($con);
print_r( $kategorien );

或使用foreach() ...

$kategorien = showCategory($con);
foreach ( $kategorien as $kat ) {
    echo $kat.PHP_EOL;
}

答案 1 :(得分:0)

请改用此方法,因为返回$ kategorien将退出循环,因此它将仅运行一次。

function showCategory($con) {
    $sql = "SELECT * FROM kategorien";
    $kategorien = array();     

        $result = $con->query($sql);
            while($row = $result->fetch_assoc()) {
               $kategorien[] = $row["kategorie"];
            }  
            return $kategorien;
}