
Ayuda con mostrar productos dinamicamente con POO
Publicado por Armando (5 intervenciones) el 23/12/2015 22:33:40
Buenas, Este es mi primer comentario en esta Comunidad y es que llevo algunos días intentando resolver este problema que tengo, el cual es el siguiente:
Tengo un código que hice previamente de forma estructurada y me funciona perfectamente, pero ahora estoy aprendiendo la programación orientada a objeto, la cual es algo mas compleja y no consigo mostrar los productos con sus imágenes correspondientes ni países de origen.
Codigo que me funciona de forma estructurada:
y ahora lo que estoy intentado es hacer lo mismo pero orientado a objetos. Lo mejor que he a salido es haciéndolo de esta forma
De esta forma los productos se me repiten tantas veces como imágenes tenga y no logro limitarlo a una sola imagen para que no se repita el producto.
Aqui esta la imagenes de la estructura de la base de datos:



Tengo un código que hice previamente de forma estructurada y me funciona perfectamente, pero ahora estoy aprendiendo la programación orientada a objeto, la cual es algo mas compleja y no consigo mostrar los productos con sus imágenes correspondientes ni países de origen.
Codigo que me funciona de forma estructurada:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Practica de ver productos</title>
</head>
<body>
<section class="cuerpo">
<h2>Productos</h2><br>
<?php
$conexion = mysqli_connect("localhost","armando","armando","practicas");
mysqli_set_charset($conexion, "utf8");
$peticion = "SELECT * FROM productos";
$resultado = mysqli_query($conexion, $peticion);
while($fila = mysqli_fetch_array($resultado)){
echo "<article>";
echo "<div class='anuncio'>";
$peticion2 = "SELECT * FROM imagenesproductos WHERE idproducto = ".$fila['id']." LIMIT 1";
$resultado2 = mysqli_query($conexion, $peticion2);
while($fila2 = mysqli_fetch_array($resultado2)) {
echo "<img src='media/imagenes/anuncios/productos/".$fila2['imagen']."' class='imagenanuncio' alt='".$fila2['titulo']."'>";
}
$peticion3 = "SELECT * FROM paises WHERE id = ".$fila['idpais']." LIMIT 1";
$resultado3 = mysqli_query($conexion, $peticion3);
while($fila3 = mysqli_fetch_array($resultado3)) {
echo "<img src='media/imagenes/banderas/".$fila3['bandera']."' class='banderas' title='".$fila3['nombre']."' alt='".$fila3['nombre']."'>";
}
echo "<a href='html/anuncios/productos.php?id=".$fila['id']."'><h3>".$fila['nombre']."</h3></a>";
//echo "<p>".$fila['descripcion']."</p>";'
//echo "<p>".$fila['precio']." €</p>";
//echo "<input type='number' value='1' max='5' min='1' id='num".$fila['id']."'>";
//echo "</br>";
//echo "<a href='producto.php?id=".$fila['id']."'><button>Mas informacion</button></a>";
//echo "<button value='".$fila['id']."' class='botoncompra'>Comprar ahorra</button>";
echo "</div>";
echo "</article>";
}
mysqli_close($conexion);
?>
</body>
</html>
y ahora lo que estoy intentado es hacer lo mismo pero orientado a objetos. Lo mejor que he a salido es haciéndolo de esta forma
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
class ObtenerAnuncios{
private $anuncios;
public function ObtenerAnuncios(){
$consulta = "Select productos.id AS id,
productos.nombre AS nombreproducto,
productos.precio AS precio,
productos.idpais AS paisproducto,
imagenesproductos.idproducto AS idproductoimagen,
imagenesproductos.titulo AS tituloimagen,
imagenesproductos.imagen AS imagenproducto,
paises.id AS iddelpais,
paises.nombre AS paisnombre,
paises.bandera AS imagenbandera
FROM
productos, imagenesproductos, paises
WHERE
productos.id = imagenesproductos.idproducto
AND
productos.idpais = paises.id";
$valores = null;
$oConectar = new conectorDB;
$this->anuncios = $oConectar->consultarBD($consulta,$valores);
return $this->anuncios;
}
}
?>
De esta forma los productos se me repiten tantas veces como imágenes tenga y no logro limitarlo a una sola imagen para que no se repita el producto.
Aqui esta la imagenes de la estructura de la base de datos:



Valora esta pregunta


0