为什么我的PHP会插入正确数量的行,但是行中没有数据?

时间:2019-01-16 19:16:32

标签: php mysql session html-table get

我正在尝试添加一个脚本,该脚本向我的MySQL数据库发出请求并在html表中显示数据。在发出请求时,表中的行数与mysql数据中的行数相对应,但是没有物理数据。

我要使用的代码是:

<div class="container" style="margin-top:2em;margin-bottom:33em;">
  <table border="1" class="table table-striped" style="margin-top: 2em;">
    <thead>
      <tr>
        <th>id</th>
        <th>username</th>
        <th>passcode</th>
      </tr>
    </thead>
    <tbody>
    <?php
    // ini_set('display_errors', 1);
    // ini_set('display_startup_errors', 1);
    // error_reporting(E_ALL);
    $servername="localhost";
    $username="wvptszyl_sc"; 
    $password="wvptszyl_sc";
    //!@#$%^&*(
    $db="wvptszyl_sc";

    $conn=mysqli_connect($servername,$username,$password,$db);
    //mysql_select_db($db);  
    if (!$conn) {
        echo "Error: Unable to connect to MySQL." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno($conn) . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error($conn) . PHP_EOL;
        exit;
    }
    @session_start();
      $result = $conn->prepare("SELECT id, username, passcode FROM admin");
      $result->execute();
      for($i=0; $row = $result->fetch(); $i++){
    ?>
      <tr>
        <td><label><?php echo $row['id']; ?></label></td>
        <td><label><?php echo $row['username']; ?></label></td>
        <td><label><?php echo $row['passcode']; ?></label></td>
      </tr>
      <?php } ?>
    </tbody>
  </table>
</div>

目前,表中有2行,并且插入了2行,但是我希望的是要在行中显示的数据。

1 个答案:

答案 0 :(得分:-1)

您误解了for循环。它用于重复特定操作,直到指定条件为假。您的情况是一项任务,所以有错误。

所以改变这个

  

for($ i = 0; $ row = $ result-> fetch(); $ i ++){

对此:

foreach ($result->fetch_all() as $row) {

$ result-> fetch_all()返回数据的关联数组。 使用foreach循环,您可以访问该数组中的每个元素,并可以使用$ row ['any-key-you-want']

进行访问