Hola mortiprogramador gracias nuevamente.
Estoy empezando a implementar la aplicación con la guía que me enviaste, pero salta el primer problema, aunque ya había empezado a usar ésta -para mi- nueva forma de petición a la base sin llamar a todas la filas en otro proyecto aplicándolo con éxito a una galería de imágenes con resultado óptimo, en la del carrito me da el error que la imagen del elemento 1 de la tabla se repite en todos los resultados.
Proyecto con resultado óptimo: Código PHP:
$peticion="SELECT id, imagen, alt FROM galery";
$resultado=mysqli_query($conexion,$peticion);
while($fila=mysqli_fetch_array($resultado)){
echo'<div class="item">';
echo' <div class="madre">';
echo' <a class="fancybox" href="images/galery/big/'.$fila['imagen'].'.jpg"
data-fancybox-group="galery" title="'.$fila['alt'].'">';
echo' <div>';
echo' <img src="images/galery/'.$fila['imagen'].'.jpg"
itemprop="image"
alt="'.$fila['imagen'].'" />';
echo' </div>';
echo' <div class="fondoEfecto">
</div>';
echo' </a>';
echo' </div>';
echo'</div>';
}
Hasta aquí íbamos bien:
Cita: 1. En el index haces dos consultas a la base de datos,
cuando puedes hacer solo una
agregando el query de images como una subconsulta a la consulta principal
(además ambos querys traen todos los datos resultantes de las filas,
cuando solo se necesitan algunos campos solamente, es decir, el * es mejor evitarlo)
(este punto aplica para index.php y productos.php)
Código PHP:
Ver original
$peticion="SELECT p.id, p.descripcion, p.nombre_productos,
p.precio, (SELECT imagen FROM images WHERE id_producto= p.id LIMIT 1) imagen
FROM productos p";
El código me queda asi:
Código PHP:
<?php
include("php/cabecera.php");
/*el usuario hace la busqueda solicitando paquetes de viaje en america el cual tendía el siguiente id 'america'*/
$conexion = mysqli_connect("localhost","root","","carritocompras");
mysqli_set_charset($conexion,"utf8");
$peticion="SELECT id, descripcion, nombre_productos,
precio, (SELECT imagen FROM images WHERE id_producto=id LIMIT 1) imagen
FROM productos";
//$peticion="SELECT * FROM productos";
$resultado=mysqli_query($conexion,$peticion);
while($fila=mysqli_fetch_array($resultado)){
echo"<div style='border-bottom:1px solid; padding:2%; width:30%'>";
echo "<h2>".$fila["nombre_productos"]."</h2>";
echo $fila["descripcion"]."<br />";
echo"<p><strong>Precio: s/ ".$fila["precio"]."</strong><br /></p>";
//lo que era segunda peticion
echo "<img src='images/".$fila["imagen"].".jpg' width=100% /><br />";
echo"<a href='productos.php?id=".$fila["id"]."'><button>más información</button></a>";
echo" <button value=".$fila["id"]." class='boton_compra'>comprar ahora</button>";
echo"</div>";
}
mysqli_close($conexion);
include("php/pie.php");
?>
Que hago mal o que omito? // esa "p" tal vez, pero como hacerla funcionar correctamente o como trabaja?
Sé que debes estar ocupado, así que esperare paciente tus comentarios. Saludos