0

所以我在 PHP 中有以下代码,其中包含一个使用 mysqli 从我的数据库中检索数据的函数:

function displayuser(){
      $db = mysqli_connect("localhost", "root", "", "shop") or die("Error");
      $query = "SELECT id, username FROM users";
      $result = $db->query($query) or die("Error");
      while($row = $result->fetch_array()) {
          return $row['id'].' '.$row['username'];
      }
}

我的问题是;假设我也必须使用 PHP,我将如何使用 HTML 在网页中显示$row['id']$row['username'] ?

应该是这样吗?例如在 PHP 文件user.php中说

<?php
   include_once('function.php');
   foreach(displayuser() as $display) {
?>
       <p><?php echo $display['id'];?></p>
<?php
   }
?>

我在处理mysql而不是mysqli时使用了上面的显示方法,所以我试图熟悉改进后的 mysql

编辑(新代码):

functions.php

function getuser() {

$db = mysqli_connect("localhost", "root", "", "shop") or die("Error");

$query = "SELECT id, username FROM users";

$result = $db->query($query) or die();

return $result->fetch_all(); }

display.php

<?php 
include_once('functions.php');

foreach(getuser() as $user) {

  echo $user['id']. ' '.$user['username'];
}
?>

执行时,display.php显示空结果。我尝试使用print_r打印数组后面的数据,但数组似乎是空的。我想也许我们不应该使用“foreach”之类的东西。

4

2 回答 2

2

对于初学者,关键字 return 从字面上杀死你的脚本。Return 的意思是“回到召唤我的地方”。也就是说,查询的第一行将结束 displayUser 函数。像这样重组它:

$result = $db->query($query);
return $result->fetch_all();

然后其余的应该可以工作,但我会改写和构建它。

include_once('function.php');
foreach(displayuser() as $user) {
    echo "<p>" . $user['id'] . "</p>";
}
于 2013-09-10T00:23:12.260 回答
1

你快到了,你可以这样做:

function.php

function get_users(){
      $db = mysqli_connect("localhost", "root", "", "shop") or die("Error");
      $query = "SELECT id, username FROM users";
      $result = $db->query($query) or die("Error");
      return $result->fetch_all();
}

显示文件

<?php
   include_once('function.php');
   $users = get_users();
   foreach($users as $user) {
       echo '<p>' . $user['id'] . ' ' . $user['username'] . '</p>';
   }
?>

这具有更清晰的关注点分离,函数调用中没有 HTML,因此可以多次重用,减少重复代码。

于 2013-09-10T00:22:42.900 回答