php将用户数组推入用户数组并循环遍历用户和用户数据(属性)
Posted
技术标签:
【中文标题】php将用户数组推入用户数组并循环遍历用户和用户数据(属性)【英文标题】:Php push user array into users array and loop through users and user data (properties) 【发布时间】:2017-05-23 04:07:06 【问题描述】:我有一堆用户进入一个数据库表(名为“users”),每个用户的属性存储在表的列中:id、username、first_name、last_name 等等。
当用户登录时,她/他的数据会从数据库中检索出来并显示在 html 表格中;为此我制作了函数(在functions.php文件中):
function user_data()
$users = array();
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args > 1)
unset($func_get_args[0]);
$fields = '`' . implode( '`, `', $func_get_args) . '`';
$query = "SELECT $fields FROM users";
$result = query($query);
$col = mysqli_fetch_assoc($result);
array_push($users, $col);
print_r($users);
return $users;
然后在用户页面上:
$user_data = $user_data[0];
echo "<span>Welcome, " . $user_data['first_name'] . " " . $user_data['last_name'] . "!</span>";
数据库中有 2 个用户,但 $users 数组只包含一个用户,如 print_r($users) 所示:
Array
(
[0] => Array
(
[username] => ajax
[first_name] => Razvan
[last_name] => Zamfir
[email] => razvan.zamfir80@gmail.com
[telefon] => 0743127315
[oras] => Bucuresti
[adresa] => Strada Alexandru Ipsilanti nr. 6, bloc 29E, sc. B, et. 3, ap. 83.
)
);
我需要遍历所有用户和每个用户的属性以显示一个通用表,该表首先显示用户的名称、姓氏和每行的编辑按钮。
我做错了什么?
【问题讨论】:
【参考方案1】:迭代查询指定的字段的行,然后使用 fetch_assoc
获取每个字段function user_data()
$users = array();
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args > 1)
unset($func_get_args[0]);
$fields = '`' . implode( '`, `', $func_get_args) . '`';
//$result = query($query);
$conn = new mysqli("yourhost","username","pass", "dbname");
$query = "SELECT $fields FROM users";
$result=$conn->query($query);
if ($result->num_rows > 0)
while ($row =$result->fetch_assoc())
array_push($users,$row);
/* free result set */
mysqli_free_result($result);
print_r($users);
return $users;
然后迭代 user_data()
方法返回的数组以提取值。
var $usr = user_data();
foreach ($usr as $arr)
foreach ($arr as $key => $value)
echo $key ." ".$value;
【讨论】:
我实现了上面的代码,它给出了错误:警告:mysqli_query() 期望参数 1 为 mysqli,给定 null。 您好,但是当我是唯一一个试图帮助您的人时,您真的需要对我投反对票吗.. :)。顺便说一句,mysqli_query() 中的第一个参数$your_connection_var
是您的 mysqli 对象,例如 $conn = new mysqli("yourhost","username","pass", "dbname");
,将这个 $conn
传递给。无论如何,我已经编辑了我的答案以简化它。
我认为上面提到的答案是正确的,您需要在从数据库中获取数据并存储到用户数组中时运行循环。否则你参考示例代码:while($row = mysql_fetch_assoc($result)) $my_arary[] = $row; print_r($row);
以上是关于php将用户数组推入用户数组并循环遍历用户和用户数据(属性)的主要内容,如果未能解决你的问题,请参考以下文章