New question

Question:

Date: 06-02-2020 13:02:33 (In Spanish)

Error al sacar todos los producto de la base de datos[Resolved]

Hola amigos. Mi problema es el siguiente.
Estoy sacando todos los producto de la base de datos y lo estoy repitiendo por cada registro de producto con un while de php.

Resulta que por un motivo que desconozco solo me esta mostrado el ultimo producto que publico en la plataforma.
Aquí les dejo el código de como lo tengo.

<?php

// Sacar el nombre de la persona que ha iniciado sesion
$stmt = $conexion->query("SELECT * FROM product");
$stmt->execute(['email' => $email]);
while ($row = $stmt->fetch()) {
    $id = $row['id'];
    $user_id = $row['user_id'];
    $title = $row['title'];
    $description = $row['description'];
    $moneda = $row['moneda'];
    $price = $row['price'];
    $ubication = $row['ubication'];
    $video = $row['video'];
    $miniatura = $row['miniatura'];
    $images = $row['images'];
    $category = $row['category'];
    $state = $row['state'];
    $create_at = $row['create_at'];
}

$row = 0;

?>

<?php while($row < $id) : ?>

  <!-- Contenido con los card -->
<section>
  <article class="col s12 m6 xl3">
          <a href="detail">
              <div class="row">
                  <div class="col s12 m12 xl12">
                    <div class="card">
                      <div class="card-image">
                        <img src="./miniaturas/<?=$miniatura?>" alt="Miniatura del producto">
                        <a class="btn-floating halfway-fab waves-effect waves-light red"><img src="images/yo.jpg" class="circle" alt="Foto de perfil del vendedor" title="Foto del vendedor"></a>
              </a> <!-- Final del enlace de la imagen -->
                      </div>
                      <a href="" class="black-text">
                          <div class="card-content">
                              <h1 class="card-title" title="Vendo casa con marquecina"><?=$title?></h1>
                          <p><?=$description?></p>
                          <b class="green-text">$<?=$price?></b>
                          </div>
                      </a> <!-- Final del enlace de los titulos y el precio -->
                    </div>
                  </div>
                </div>

      </article>
</section> <!-- Fin de un card -->

<?php $row++; ?>

<?php endwhile ?>


  <!-- Modal de ayuda -->
  <?php require_once('modal/modal.ayuda.php') ?>
Tags: Database - MySQL - PHP - PHP Advanced Votes: 0 - Answers: 3 - Views: 6 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 06-02-2020 16:44:14 Hola Braylin

    siempre repite el último registro porque la primera estructura del while donde se obtiene todos los registros se queda con el ultimo registros.
    Lo que deberías hacer recorrer todos el array de datos nuevamente para ir imprimiendolos o bien utilizar la primera estructura de while donde se obtienen los datos e ir imprimirlos como el siguiente ejemplo.

    <?php
    // Sacar el nombre de la persona que ha iniciado sesion
    $stmt = $conexion->query("SELECT * FROM product");
    $stmt->execute(['email' => $email]);
    while ($row = $stmt->fetch()) {
        $id = $row['id'];
        $user_id = $row['user_id'];
        $title = $row['title'];
        $description = $row['description'];
        $moneda = $row['moneda'];
        $price = $row['price'];
        $ubication = $row['ubication'];
        $video = $row['video'];
        $miniatura = $row['miniatura'];
        $images = $row['images'];
        $category = $row['category'];
        $state = $row['state'];
        $create_at = $row['create_at'];
    
    
    ?>
    
      <!-- Contenido con los card -->
    <section>
      <article class="col s12 m6 xl3">
              <a href="detail">
                  <div class="row">
                      <div class="col s12 m12 xl12">
                        <div class="card">
                          <div class="card-image">
                            <img src="./miniaturas/<?=$miniatura?>" alt="Miniatura del producto">
                            <a class="btn-floating halfway-fab waves-effect waves-light red"><img src="images/yo.jpg" class="circle" alt="Foto de perfil del vendedor" title="Foto del vendedor"></a>
                  </a> <!-- Final del enlace de la imagen -->
                          </div>
                          <a href="" class="black-text">
                              <div class="card-content">
                                  <h1 class="card-title" title="Vendo casa con marquecina"><?=$title?></h1>
                              <p><?=$description?></p>
                              <b class="green-text">$<?=$price?></b>
                              </div>
                          </a> <!-- Final del enlace de los titulos y el precio -->
                        </div>
                      </div>
                    </div>
          </article>
    </section> <!-- Fin de un card -->
     
    <?php } ?>
      <!-- Modal de ayuda -->
      <?php require_once('modal/modal.ayuda.php') ?>
    


    El codigo no lo revise en profundidad solo lo he adoptado.

    Por otro lado en vez
    <b class="green-text">$<?=$price?></b>

    yo preferiría
    <b class="green-text">$<? echo $price?></b>

    Asi con el resto del codigo que tienen la misma forma escrita.

    Espero que te sirva

    Saludos
      Votes: 1 - Link answer
     
  • Date: 07-02-2020 17:02:49 Hola Walter, una pregunta
    Porque usted no le gusta esta forma si muchas personas dicen que es lo correcto
    <b class="green-text">$<? echo $price?></b>


    Espero su respuesta. Un cordial saludo
      Votes: 0 - Link answer
     
  • Date: 07-02-2020 17:09:07 Tengo que darle muchas gracias Walter porque gracias a usted logre resolver este problema. Muchas gracias   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In