Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con el WHILE

Estas en el tema de Problema con el WHILE en el foro de PHP en Foros del Web. Hola Gente.. Saludos! Traigo datos en una tabla, y tengo un campo en donde puedo elegir entre las diferentes opciones que también traigo de una ...
  #1 (permalink)  
Antiguo 22/11/2016, 14:44
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 79
Antigüedad: 12 años, 1 mes
Puntos: 0
Problema con el WHILE

Hola Gente.. Saludos!

Traigo datos en una tabla, y tengo un campo en donde puedo elegir entre las diferentes opciones que también traigo de una tabla. Pero no se porque solo me los muestra en la primera fila, en las demás no.

Me podrían decir que es lo que no estoy haciendo bien?

Gracias!

Código PHP:
<table border = "" align = "center" cellpadding = "10">
    <tr><td><b>Maquina</b></td><td><b>Sistema</b></td><td><b>Firmware</b></td><td><b>Estado</b></td><td><b>Fecha</b></td><td><b>Area</b></td><td><b>Observacion</b></td><td><b>Accion</b></td></tr>

<?php
$estados 
mysqli_query($dblocal,"SELECT * FROM estados order by id");
$consulta mysqli_query($dblocal,"SELECT * FROM maquinas WHERE estado = 'Observacion' or estado = 'Micronauta'");
while (
$resultado mysqli_fetch_array($consulta)){ ?>

    
        <tr>
            <td><?php echo $resultado['maquina']; ?></td>
            <td><?php echo $resultado['sistema']; ?></td>
            <td><?php echo $resultado['firmware']; ?></td>
            <td><?php echo $resultado['estado']; ?></td>
            <td><?php echo $resultado['fecha']; ?></td>
            <td><?php echo $resultado['area']; ?></td>
            <td><?php echo $resultado['observacion']; ?></td>
            <td><select><?php while($arreglo mysqli_fetch_array($estados)){ ?>
                <option value="<?php echo $arreglo['id']?>"><?php echo $arreglo['estados']?></option>
                <?php ?></select></td>

        </tr>
    

<?php ?>

</table>
  #2 (permalink)  
Antiguo 22/11/2016, 19:20
Avatar de AngelKrak  
Fecha de Ingreso: noviembre-2014
Mensajes: 917
Antigüedad: 9 años, 4 meses
Puntos: 91
Respuesta: Problema con el WHILE

Esto deberia de llevar <th> no <td> ya que son los titles
Cita:
<tr><td><b>Maquina</b></td><td><b>Sistema</b></td>...
  #3 (permalink)  
Antiguo 22/11/2016, 21:12
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Problema con el WHILE

No estas cerrando con ; los echos...

<option value="<?php echo $arreglo['id']; ?>"><?php echo $arreglo['estados']; ?></option>
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #4 (permalink)  
Antiguo 22/11/2016, 23:16
 
Fecha de Ingreso: julio-2011
Ubicación: Los Rios
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 10
Respuesta: Problema con el WHILE

Si me lo preguntaras a mi (jajaja) te diria que le estas dando demasiado trabajo al servidor al hacer una consulta de lo mismo en cada registroa visualizar. es decir por cada registro de consulta haces una consulta de estados.. 10 consultas = 10 veces la misma consulta de db de estados yo lo dejaria asi:

Código PHP:
Ver original
  1. <?php
  2. $estados = mysqli_query($dblocal,"SELECT * FROM estados order by id");
  3. $consulta = mysqli_query($dblocal,"SELECT * FROM maquinas WHERE estado = 'Observacion' or estado = 'Micronauta'");
  4.  
  5. $select="<select><option value='' selected>Seleccione</option>";
  6. do{
  7.      $select.="<option value='".$arreglo['id']."'>".$arreglo['estados']."</option>";
  8. }while($arreglo = mysqli_fetch_assoc($estados));
  9. $select.="</select>";
  10.  
  11. do{
  12.     echo "
  13.        <tr>
  14.            <td>". $resultado['maquina']."</td>
  15.            <td>".$resultado['sistema']."</td>
  16.            <td>".$resultado['firmware']."</td>
  17.            <td>".$resultado['estado']."</td>
  18.            <td>".$resultado['fecha']."</td>
  19.            <td>".$resultado['area']".</td>
  20.            <td>".$resultado['observacion']."</td>
  21.            <td>".$select."</td>
  22.        </tr> ";
  23. while ($resultado = mysqli_fetch_assoc($consulta));

Espero te sirva la solución;
__________________
___________________________
Si te ayudo mi respuesta dale al +1

Última edición por juancaalbarracin; 22/11/2016 a las 23:18 Razón: falla en "
  #5 (permalink)  
Antiguo 23/11/2016, 11:05
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Problema con el WHILE

Guarde en variables los resultados y en los td solo hace echo a una variable, nunca me ha gustado hacer echo a un resultado puro de un query
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #6 (permalink)  
Antiguo 23/11/2016, 13:26
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 79
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema con el WHILE

Gracias a todos por ayudar!!

Utilice el método de juancaalbarracin, lo que si modifique el ultimo do while por un while, porque así como estaba me traía la primera fila en blanco.

Quedo funcionando bien!

Saludos!!

Etiquetas: mysql, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:29.