使用Foreach读取数据库



使用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
}
?>

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

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

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
}
?>

最新更新