【发布时间】:2017-11-09 09:12:20
【问题描述】:
我正在尝试使用数据库中的部分动态填充我网站的管理页面。
问题是我想将所有部分都添加到数据库中,为了更容易,我使用了一个函数。
这段代码打印出第一个数组元素。
functions.php
<?php
function fetchAdminSections ($user_id){
global $pdo;
$get_sections = $pdo->prepare("SELECT `id`, `section_name`, `section_description` FROM `administration_sections` WHERE `admin_added_this` = :admin");
$get_sections->execute([
':admin' => $user_id
]);
while ($row = $get_sections->fetch(PDO::FETCH_ASSOC)){
$sections = [];
$id = $row['id'];
$name = $row['section_name'];
$description = $row['section_description'];
$sections[$id]['section_name'] = $name;
$sections[$id]['section_description'] = $description;
return $sections;
}
}
?>
index.php
<?php
include 'functions.php';
$elements = fetchAdminSections($user_id);
print_r($elements);
?>
我得到的是:
Array ( [1] => Array ( [section_name] => test1 [section_description] => test ) )
简单地在while 中返回$row 给了我类似的东西:
Array ( [id] => 1 [section_name] => test1 [section_description] => test )
我想获取所有部分,并循环浏览它们!
【问题讨论】:
-
循环后移动
return $sections; -
每次循环时,您都会再次启动变量
$sections,这意味着它会不断被覆盖。将此行$sections = [];移出循环。