如何使用foreach PHP正确显示元素列表?

时间:2019-07-13 01:02:39

标签: php mysql arrays

我正在处理将根据相关项目显示的产品列表,这意味着如果有两个或多个与单个项目相关的产品,则应在表格中显示它们,在此我显示代码和视图:

我查询的模型:

    class ModeloProductos{ /*=======================================
====== MOSTRAR PROMATE =============================================*/
static public function mdlMostrarPromate($tabla, $item, $valor){ if($item != null){ $stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla WHERE $item = :$item"); 
$stmt -> bindParam(":".$item, $valor, PDO::PARAM_STR); $stmt -> execute(); 
return $stmt -> fetch(); 
}else{ $stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla WHERE $item = :$item");
 $stmt -> execute(); return $stmt -> fetchAll(); }

控制器:

    class ControladorProductos{ /*=============================================  
 MOSTRAR PROMATE =============================================*/  

 static public function ctrMostrarPromate($item, $valor){ 
$tabla = "productos"; 
$respuesta = ModeloProductos::mdlMostrarPromate($tabla, $item, $valor); //var_dump($respuesta); return $respuesta; } }

视图如下所示,值得一提的是,在$ value中,我从url的_GET方法调用了项目的ID:

    <?php $item = "id_categoria"; $valor = $_GET["idPromate"]; 
$productos = ControladorProductos::ctrMostrarPromate($item, $valor); 
$listaproductos = array($productos); foreach ($listaproductos as $key => $value)
 { echo ' <tr> <td>'.($key+1).'</td> <td class="text-uppercase">'.$value["descripcion"].'</td> <td class="text-
uppercase">'.$value["tipoM"].'</td> <td class="text-
uppercase">'.$value["nomProyecto"].'</td> <td class="text-
uppercase">'.$value["stock"].'</td> <td class="text-
uppercase">'.$value["fecha"].''</td> }

在视图中没有数组的情况下,它会显示偏移量错误,因此使用数组尝试发送与可见的项目ID链接的产品列表,然后使用foreach尝试分解列表中的信息view,所以起初我想我会实现的,因为它向我展示了这个结果:

enter link description here

但是当在phpMyAdmin中进行模型查询时,我意识到有两个与该项目相关的产品:

enter link description here

当我因为他没有向我展示其他结果而感到怀疑时,就在那里,我将非常有帮助

0 个答案:

没有答案