Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con While

Estas en el tema de Problema con While en el foro de PHP en Foros del Web. Buena chicos, tengo un problema con el while que muestra los resultados de una consulta, quiza es algo tonto pero no consigo lograr esta tonteria:...
  #1 (permalink)  
Antiguo 07/07/2015, 12:32
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Problema con While

Buena chicos, tengo un problema con el while que muestra los resultados de una consulta, quiza es algo tonto pero no consigo lograr esta tonteria:
  #2 (permalink)  
Antiguo 07/07/2015, 12:35
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

while:
Código PHP:
Ver original
  1. if($requisitos) {
  2. echo "<table width='100%'>";
  3. echo    "<tr>";
  4. echo        "<td width='75%'><center>Requisito</center></td><td><center>Accion</center></td>";
  5. echo    "</tr>";
  6. echo    "<tr>";
  7.     do{//inicio del bucle
  8. echo        "<td style='border-bottom-color:'><i class='fa fa-chevron-right'>&nbsp;</i>".$row["requisito"]."</td><td><center><button class='btn btn-danger'><i class='fa fa-ban'></i></button> <button class='btn btn-default'><i class='fa fa-pencil'></i></button></center></td>";
  9. echo    "</tr>";
  10. } while($row = mysqli_fetch_array($requisitos));//cierre del while
  11. echo "</table>";
  12.     }//ciere de la condicion if
  13.     else {//si no hay registros en la base
  14. echo "<table width='100%'>";
  15. echo    "<tr>";
  16. echo        "<td width='80%'><center></center></td><td><center></center></td>";
  17. echo    "</tr>";
  18. echo    "<tr>";
  19. echo        "<td colspan='2'><center>No hay Datos</center></td>";
  20. echo    "</tr>";
  21. echo "</table>";
  22. }
  #3 (permalink)  
Antiguo 07/07/2015, 12:35
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

consulta:
Código PHP:
Ver original
  1. $mysqli2 = new MySQLi($hostname_seguridad, $username_seguridad, $password_seguridad, $database_seguridad);
  2. $requisitos = $mysqli2->query("SELECT * FROM config_requisitos WHERE rif = '$row_datos[rif]' AND unidad_explot = '$row_datos[unidad_explot]' ORDER BY id ASC");
  3. $row_requisitos = $requisitos->fetch_assoc();
  4. $totalRows_resuiqistos = mysqli_num_rows($requisitos);
  #4 (permalink)  
Antiguo 07/07/2015, 12:37
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

el problema es que el primero resultado no l.o muestra o lo muestra en blanco
  #5 (permalink)  
Antiguo 07/07/2015, 12:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con While

Cita:
Iniciado por xfxstudios Ver Mensaje
el problema es que el primero resultado no l.o muestra o lo muestra en blanco
Ese es precisamente el problema de usar do-while y o no un while a secas.

¿Sabes cuales son las diferencias?

Usar do-while primero ejecuta el bloque de código antes del while, entonces ahí está tu error, en el bloque de código usas la variable $row y ésta no existe sino hasta ejecutar el while.

Entonces ¡estás haciendo las cosas al revés!

Debes usar while y nada más, así primero se ejecuta el while, entonces la variable $row se crea y al ejecutar el bloque de código todo debería ir mejor.

Reflexiona bien lo que te he mencionado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 07/07/2015, 13:22
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

Ya lo habia intentado directamente como me indicas y alli no me muestra el primer csmpo en blanco, es mas ni siquiera trae el primer registro:
Código PHP:
Ver original
  1. while ($row = mysqli_fetch_array ($rrquisitos)
  2. {
  3. echo $row['requisito'];
  4. }
Pero iguan me trae todos los registros menos el primero
  #7 (permalink)  
Antiguo 07/07/2015, 13:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con While

Cita:
Pero iguan me trae todos los registros menos el primero

Si así tampoco se lista el primer registro puede que hagas "fetching" mucho antes y eso obviamente quita el primer registro del recurso.

¿Podrías mostrar el código completo para no adivinar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 07/07/2015, 14:10
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

Arriba esta la consulta y la tabla que muestra los datos, no hay mas codigo que ese y el obvio html y los include de conexion.
Otra cosa no hay mas fetch por ningun lado, es decir no se que broncas le pasa a ese archivo
  #9 (permalink)  
Antiguo 07/07/2015, 14:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con While

Cita:
Otra cosa no hay mas fetch por ningun lado, es decir no se que broncas le pasa a ese archivo
Pues entonces el código que muestras no tiene errores, si pierdes un registro no creo que podamos adivinar la razón sólo porque tu dices que algo anda mal.

Nosotros sólo podemos leer lo que tu coloques aquí, nada más.

Ojala pudieras mostrar el código real sin do-while.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 07/07/2015, 15:41
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

Al llegar lo coloco sin faltas
  #11 (permalink)  
Antiguo 07/07/2015, 16:31
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

Esta es la Consulta:
Código PHP:
Ver original
  1. $rif = $_GET['rif'];
  2. $unidad = $_GET['unidad'];
  3.  
  4. $mysqli2 = new MySQLi($hostname_seguridad, $username_seguridad, $password_seguridad, $database_seguridad);
  5. $requisitos = $mysqli2->query("SELECT * FROM config_requisitos WHERE rif = '$rif' AND unidad_explot = '$unidad' ORDER BY id ASC");
  6. $row_requisitos = $requisitos->fetch_assoc();
  7. $totalRows_resuiqistos = mysqli_num_rows($requisitos);
  #12 (permalink)  
Antiguo 07/07/2015, 16:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con While

Volviendo a tu afirmación:
Cita:
Otra cosa no hay mas fetch por ningun lado, es decir no se que broncas le pasa a ese archivo
Te equivocas rotundamente:
Código PHP:
Ver original
  1. $row_requisitos = $requisitos->fetch_assoc();

Si eso no es "hacer fetching" ¿entonces qué es?

¿Además dónde está el do-while que haces?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 07/07/2015, 17:43
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con While

Código PHP:
Ver original
  1. $mysqli2 = new MySQLi($hostname_seguridad, $username_seguridad, $password_seguridad, $database_seguridad);
  2. $requisitos = $mysqli2->query("SELECT * FROM config_requisitos WHERE rif = '$rif' AND unidad_explot = '$unidad' ORDER BY id ASC");
  3. $totalRows_resuiqistos = mysqli_num_rows($requisitos);
resuelto con eso y elimine el do while
  #14 (permalink)  
Antiguo 07/07/2015, 20:53
akires47
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con While

Hola que tal, tengo un problema con el llenado de una tabla tambien para no crear otro tema al pedo pregunto aca ya que estoy..

Cuando uso este WHILE se llena perfecto

Código PHP:
while ($fila mysqli_fetch_array($resultado))
{
    echo 
'<tr>';
    echo 
'<td>' $fila['ID'] . '</td>';
    echo 
'<td>' $fila['User'] . '</td>';
    echo 
'<td>' $fila['Psw'] . '</td>';
    echo 
'</tr>';

Ahora cuando solo le paso $fila no funciona, me tira un error de sobrecarga la pagina cuando la ejecuto, yo le quiero pasar $fila sola porque tengo una funcion que ejecuta consultas que devuelve el $fila del mysqli_fetch_array..

Esta es mi funcion..

Código PHP:
function ejecutarConsulta($conexion$query) {
    
$resultado mysqli_query($conexion$query);
    
$fila mysqli_fetch_array($resultado);
    return 
$fila;

Y este es el WHILE que no anda..

Código PHP:
while ($fila)
{
    echo 
'<tr>';
    echo 
'<td>' $fila['ID'] . '</td>';
    echo 
'<td>' $fila['User'] . '</td>';
    echo 
'<td>' $fila['Psw'] . '</td>';
    echo 
'</tr>';

Me encantaria saber porque no funciona, porque cuando hago un var_drop de $fila y cuando hago un var_drop de $fila = mysqli_fetch_array ambos devuelven lo mismo entonces no entiendo nada..

Les agradeceria su ayuda gente..


Etiquetas: Ninguno
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 23:30.