Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: bgnumis en 8 Octubre 2017, 19:03 pm



Título: Tantos div como salidas de una consulta
Publicado por: bgnumis en 8 Octubre 2017, 19:03 pm
Hola,

A ver si me podéis ayudar. Tengo una tabla de productos y otra tabla de imágenes (en productos está id, idproducto, titulo, descripcion, precio, ideusuario, fechareg). En imágenes está id, idproducto, file, fechareg.

La cuestión es que en la web quisiera que me mostrara el siguiente código pero por cada producto que esté en la tabla productos (cuyas imágenes están en imágenes). El tema es que como los usuarios insertarán productos yo se que los productos son "n" pero no sé cuantos:

Código
  1.  
  2.  
  3. <div class="col-sm-6 col-md-3">
  4.            <div class="thumbnail">
  5.              <a href="#"><img src="img/img-default.jpg" alt="Titulo del objeto"></a>
  6.              <div class="caption">
  7.                <div class="caption">
  8.                                <h4 class="pull-right">$24.99</h4>
  9.                                <h4><a href="#">First Product</a>
  10.                                </h4>
  11.                                <p>See more snippets like this online store item at <a target="_blank" href="http://www.bootsnipp.com">Bootsnipp - http://bootsnipp.com</a>.</p>
  12.                                  </div>
  13.                </div>
  14.  
  15.                             <p class="text-center">
  16.                  <a href="#" class="btn btn-azul" role="button">Ver producto</a>
  17.                  <a href="#" class="btn btn-naranja" role="button">Lista de deseos</a>
  18.                </p>
  19.            </div>
  20.          </div>
  21.  
  22.  
  23.  


¿Entiendo que para que me salga este bloque para cada producto debo utilizar un for o un while? ¿debería unir la tabla productos con imágenes?

Lo que quiero es que por cada bucle me saque en img/img-default.jpg la imagen de imagénes del producto "i" donde pone $24.99 (que ponga el precio del producto de la tabla productos asociado a la imagen y usuario que lo ha insertado) así como la descripción etc.

Espero haberme explicado, a ver si me podéis decir si este bucle que me "muestre" tantos productos (con el código de arriba) como hay en la tabla productos .

Estoy leyendo sobre ello pero si alguien me puede ayudar un poco bienvenido sea.

Muchas Gracias



Hola a ver si me podéis ayudar:

Hago esta consulta
Código
  1. $busqueda=mysql_query("SELECT * FROM productos") ;

Y si en el código pongo

Código
  1.  
  2. <?php
  3.  
  4.  
  5.  while($muestra=@mysql_fetch_array($busqueda)){
  6.  
  7.  
  8.  
  9.    ?>
  10.     <div class="col-sm-6 col-md-3">
  11.            <div class="thumbnail">
  12.              <a href="#"><img src="img/img-default.jpg" alt="Titulo del producto"></a>
  13.              <div class="caption">
  14.                <div class="caption">
  15.                                <h4 class="pull-right">$24.99</h4>
  16.                                <h4><a href="#">First Product</a>
  17.                                </h4>
  18.                                <p> <?php echo $muestra['descripcion']; ?> <a target="_blank" href="http://www.bootsnipp.com">Bootsnipp - http://bootsnipp.com</a>.</p>
  19.                                  </div>
  20.                </div>
  21.  
  22.                             <p class="text-center">
  23.                  <a href="#" class="btn btn-azul" role="button">Ver producto</a>
  24.                  <a href="#" class="btn btn-naranja" role="button">Lista de deseos</a>
  25.                </p>
  26.            </div>
  27.          </div>
  28.  
  29.  
  30.  
  31.  
  32. <?php
  33.   }
  34.  
  35. ?>
  36.  
  37.  
  38.  
  39.  

Sí que me muestra de cada producto la descripción. La duda viene aquí;

Si las imágenes de cada producto están en otra tabla imágenes y el campo que tienen en común es el idproducto ¿Cómo hago para que aparezcan? Estoy intentando un echo pero no lo consigo.

Si hubiera más de una imagen por idproducto, el siguiente paso será buscar como hacer ahí un rolling de imágenes.

A ver si alguno puede ayudarme.




Ah, mi idea es que todas las imágenes independientemente de su tamaño original y extensión ocupen un tamaño determinado 100px por 100px por ejemplo. A ver si me podéis dar alguna pista.


Mod: No hacer triple post.


Título: Re: Tantos div como salidas de una consulta
Publicado por: #!drvy en 9 Octubre 2017, 17:21 pm
- No hagas doble post ni triple ni cuádruple. Esta en contra de las reglas del foro.
- Los temas sobre PHP, van al subforo de PHP. De nuevo, esta indicado en las reglas del foro.
- El uso de mysql_query esta desaconsejado pues es una librería que ya no recibe soporte y ha sido eliminada en versiones posteriores a PHP 5.

[Obligatorio] Normas del subforo de Desarrollo Web.
https://foro.elhacker.net/desarrollo_web/obligatorio_normas_del_subforo_de_desarrollo_web_13102015-t407889.0.html

Dicho esto,


Código
  1. <?php
  2.  
  3. // Conexion
  4. $mysqli = new mysqli('localhost', 'root', 'toor', 'test');
  5.  
  6.  
  7. // Query
  8. $query = 'SELECT * FROM productos';
  9. $result = $mysqli->query($query);
  10.  
  11.  
  12. // Si el query da resultado..
  13. if($result){
  14.  
  15.    // Por cada item..
  16.    while ($muestra = mysqli_fetch_assoc($result)) {
  17.        ?>
  18.  
  19.        <div class="col-sm-6 col-md-3">
  20.            <div class="thumbnail">
  21.              <a href="#"><img src="img/img-default.jpg" alt="Titulo del producto"></a>
  22.              <div class="caption">
  23.                <div class="caption">
  24.                                <h4 class="pull-right">$24.99</h4>
  25.                                <h4><a href="#">First Product</a>
  26.                                </h4>
  27.                                <p> <?php echo $muestra['descripcion']; ?> <a target="_blank" href="http://www.bootsnipp.com">Bootsnipp - http://bootsnipp.com</a>.</p>
  28.                                  </div>
  29.                </div>
  30.  
  31.                             <p class="text-center">
  32.                  <a href="#" class="btn btn-azul" role="button">Ver producto</a>
  33.                  <a href="#" class="btn btn-naranja" role="button">Lista de deseos</a>
  34.                </p>
  35.            </div>
  36.          </div>
  37.  
  38.        <?php
  39.    }
  40.  
  41. }


Citar
Si las imágenes de cada producto están en otra tabla imágenes y el campo que tienen en común es el idproducto ¿Cómo hago para que aparezcan? Estoy intentando un echo pero no lo consigo.

Tendrias que hacer un multi-query.
Código
  1. SELECT * FROM productos, imagenes WHERE productos.id_imagen = imagenes.id

Esto te retornara todos los productos que tienen una imagen, suponiendo que la tabla de imágenes se llama "imagenes" y que la tabla productos contiene una columna "id_imagen" que tiene el mismo contenido que la columna id de la tabla imagenes.

Citar
Ah, mi idea es que todas las imágenes independientemente de su tamaño original y extensión ocupen un tamaño determinado 100px por 100px por ejemplo. A ver si me podéis dar alguna pista.

Eso es CSS.

Código
  1. .thumbnail img {
  2.    width: 100px;
  3.    height: 100px;
  4. }

Saludos


Título: Re: Tantos div como salidas de una consulta
Publicado por: bgnumis en 9 Octubre 2017, 18:15 pm
Hola,

Mil gracias. Lo pruebo ahora cuando vuelva he salido a correr que me estaba volviendo loco.

Tengo que pasarme a mysqli ya.

Lo de múltiple post no me he dado cuenta si lo he hecho. Sorry. Mil gracias.