Php while循环中的数组

Php while循环中的数组,php,mysql,arrays,Php,Mysql,Arrays,我创建了一个从mysql数据库读取数据的函数 我想将数据放入一个数组中,并在PHP函数外部读取该数组 function showCategory($con) { $sql = "SELECT * FROM kategorien"; $kategorien = array(); $result = $con->query($sql); while($row = $result->fetch_assoc()) { $katego

我创建了一个从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];
它不起作用。怎么了?

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

将退出循环和函数,因此将其移动到函数末尾,而不是循环中

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

使用此选项,因为返回$kategorien将退出循环,因此它只运行一次

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

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

使用此选项,因为返回$kategorien将退出循环,因此它只运行一次

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

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

首先尝试返回$kategorien;在While循环之外,因为return会自然结束当前函数的执行,请首先尝试return$kategorien;在While循环之外,因为return自然结束当前函数的执行谢谢!但我只得到第一个条目$kategorien=showCategory($con);echo$kategorien[0];尝试
print_r($kategorien)
而不是
echo
@NigelRen,您可以将
array_列
作为
return array_列($result,'kategorie')并且不使用while循环(如果使用
fetch\u assoc\u all
),我已经添加了一些选项来显示数据-但是
$kategorien[0]
只是数组的第一个元素(
[0]
),谢谢!但我只得到第一个条目$kategorien=showCategory($con);echo$kategorien[0];尝试
print_r($kategorien)
而不是
echo
@NigelRen,您可以将
array_列
作为
return array_列($result,'kategorie')并且不使用while循环(如果使用
fetch\u assoc\u all
),我添加了更多选项来显示数据-但是
$kategorien[0]
只是数组的第一个元素(
[0]