【问题标题】:using Foreach to read database [duplicate]使用 Foreach 读取数据库 [重复]
【发布时间】:2022-09-23 22:08:04
【问题描述】:

我在使用 foreach 从数据库中读取数据时遇到问题。我认为有一些事情要做,因为它是一个数组数组...... 这是代码:

<?php
    $con = mysqli_connect(\'localhost\', \'root\', \'\', \'productos\') or exit(\'No se pudo conectar con la base de datos.\');

    $sql = \"SELECT id, producto, marca, codigo FROM productos\";

    $result = mysqli_query($con, $sql);

    if (mysqli_num_rows($result) > 0) {

      
        $productos = mysqli_fetch_assoc($result);

        foreach ($productos as $producto) {   ?>
            <div>
                <h3><?php $producto[\'producto\'] ?></h3>
                <h4><?php $producto[\'marca\'] ?></h4>
                <h4><?php $producto[\'codigo\'] ?></h4>
            </div>
        <?php
        }
    } else { ?>
        <h2>No hay productos para mostrar</h2>
    <?php
    }
    ?>
  • 使用mysqli_fetch_all($result, MYSQLI_ASSOC);
  • 你的错误是你试图迭代 $productos 而不是 $result

标签: php mysqli


【解决方案1】:

A)目前,您只获取一行。所以你可以像下面这样:

while ($producto = mysqli_fetch_assoc($result)) {?>

B) 或者您可以使用mysqli_fetch_all($result, MYSQLI_ASSOC); 一次性获取所有数据。

$productos = mysqli_fetch_all($result, MYSQLI_ASSOC);

mysqli_fetch_all

mysqli_fetch_assoc

【讨论】:

    【解决方案2】:

    您不能使用 foreach,因为 mysqli_fetch_assoc($result) 仅获取下一个结果。
    您需要使用while($producto = mysqli_fetch_assoc($result) { ... } 循环进行处理。

    【讨论】:

      【解决方案3】:

      mysqli_fetch_assoc一次返回一行,所以你必须把它放在一个循环中。

      <?php
          $con = mysqli_connect('localhost', 'root', '', 'productos') or exit('No se pudo conectar con la base de datos.');
      
          $sql = "SELECT id, producto, marca, codigo FROM productos";
      
          $result = mysqli_query($con, $sql);
      
          if (mysqli_num_rows($result) > 0) {
      
            
              while ($producto = mysqli_fetch_assoc($result)) {?>
                  <div>
                      <h3><?php $producto['producto'] ?></h3>
                      <h4><?php $producto['marca'] ?></h4>
                      <h4><?php $producto['codigo'] ?></h4>
                  </div>
              <?php
              }
          } else { ?>
              <h2>No hay productos para mostrar</h2>
          <?php
          }
          ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-15
        • 1970-01-01
        • 2012-02-23
        • 2016-09-13
        • 2018-01-08
        • 2017-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多