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