PHP - Implementacion condición do-while me trae unos campos vacios de base de datos

 
Vista:
Imágen de perfil de alberto
Val: 41
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Implementacion condición do-while me trae unos campos vacios de base de datos

Publicado por alberto (15 intervenciones) el 08/11/2018 00:19:41
Buenas noches comunidad necesito ayuda, estoy creando un formulario de producto pero al hacer la selección en la base datos implemente un Do-while "hacer… mientras" se que primero se tiene que ejecutar la sentencia una vez y después la condición.

Este me esta trayendo unos campo vacíos y después si me trae los demas? ya verifique la base de datos y esta trabajando bien.


Como puedo solucionar esto ayuda.....

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
$product_name = $_GET['product_name'];
$prodcut_refere = $_GET['prodcut_refere'];
$prodcut_marca  = $_GET['prodcut_marca'];
 
//consulta base datos con condicional   
if ($product_name!=null & $prodcut_refere!=null & $prodcut_marca!=null) {
    $GetItems = "SELECT tipovehiculo,nombrereferencia,nombremarca from vehiculo,referencia,marca where tipovehiculo = '$product_name' AND  nombrereferencia = '$prodcut_refere' AND nombremarca = '$prodcut_marca' ";
} else{
    $GetItems = "SELECT tipovehiculo,nombrereferencia,nombremarca from vehiculo,referencia,marca";
}
 
$result=$conexion->query($GetItems);
?>
 
 
<?php do { ?>
    <div class="col-lg-4 col-md-6 mb-4">
 
        <a href="#">
            <img class="card-img-top" src="http://placehold.it/700x400" alt="">
        </a>
 
        <p>
      Categoria: <?php echo($row['tipovehiculo']);?><br/>
        Marca: <?php echo($row['nombremarca']);?> <br/>
        Referencia: <?php echo($row['nombrereferencia']);?> <br/>
        Precio: $<?php echo($row['precio']);?>
        </p>
    </div>
<?php } while ($row=$result->fetch_array(MYSQLI_ASSOC)); ?>
vacio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 54
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Implementacion condición do-while me trae unos campos vacios de base de datos

Publicado por Javier (25 intervenciones) el 08/11/2018 15:25:51
Hola: para evitar un primer registro "vacío", cambia el ciclo para que quede más o menos así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while ($row=$result->fetch_array(MYSQLI_ASSOC)) {
 ?>
    <div class="col-lg-4 col-md-6 mb-4">
        <a href="#">
            <img class="card-img-top" src="http://placehold.it/700x400" alt="">
        </a>
 
        <p>
       Categoria: <?php echo($row['tipovehiculo']);?><br/>
        Marca: <?php echo($row['nombremarca']);?> <br/>
        Referencia: <?php echo($row['nombrereferencia']);?> <br/>
        Precio: $<?php echo($row['precio']);?>
        </p>
 
    </div>
 
<?php
 } // endwhile.

En el ciclo en el que usas do..while, no te "lee" un primer registro ya que, como bien dices, primero ejecta el cuerpo del ciclo y luego evalúa la condición.La lectura de registro, la hace fetch_array pero está en la condición que tienes en do...while, ABAJO. Es decir, te muestra "campos vacíos" porque aún no "leyó" un registro.

Saludos
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar