PHP将用户数组插入用户数组并循环用户和用户数据(属性)

标签 php mysql arrays loops foreach

我有一堆用户进入一个数据库表(名为“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] =&gt; Array
    (
        [username] =&gt; ajax
        [first_name] =&gt; Razvan
        [last_name] =&gt; Zamfir
        [email] =&gt; <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="eb998a919d8a85c5918a868d8299d3dbab8c868a8287c5888486" rel="noreferrer noopener nofollow">[email protected]</a>
        [telefon] =&gt; 0743127315
        [oras] =&gt; Bucuresti
        [adresa] =&gt; Strada Alexandru Ipsilanti nr. 6, bloc 29E, sc. B, et. 3, ap. 83.
    )
);

我需要循环遍历所有用户以及每个用户的属性,以显示一个总表,其中显示用户的第一个属性每行都有姓名姓氏编辑按钮

我做错了什么?

最佳答案

迭代查询指定的字段的,然后使用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;
 }
  }

关于PHP将用户数组插入用户数组并循环用户和用户数据(属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538827/

相关文章:

java - 在java程序中创建临时表mysql的问题

mysql - 将 perl 数组存储在内存中以供其他 perl 实例使用

arrays - Fortran 中纯函数的数组临时值的生成

javascript - HTML 表单中隐藏字段的限制

php - 当我使用 Resizable Jquery 增加 div 的大小时如何滚动?

php - 表中同一字段的多个查询

javascript - 无法将文本转换为 JavaScript 数组

php - 只计算mysql表中不同的值?

php - 如何在将上传的文件保存到目录之前重命名?

php - sql : How to check a zipcode is exist in zipcode range