Foros del Web » Programando para Internet » PHP »

No me trae todos los registros, ¿por que?

Estas en el tema de No me trae todos los registros, ¿por que? en el foro de PHP en Foros del Web. Hola gente, tengo este código: Código PHP: $query  =  "SELECT * from productos" ; if ( $result  =  $mysqli -> query ( $query )) {       $row  =  $result -> ...
  #1 (permalink)  
Antiguo 25/03/2009, 14:03
 
Fecha de Ingreso: marzo-2009
Ubicación: Argentina
Mensajes: 6
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación No me trae todos los registros, ¿por que?

Hola gente, tengo este código:

Código PHP:
$query "SELECT * from productos";


if (
$result $mysqli->query($query)) { 

    
$row $result->fetch_row(); 
    
$i=0
    while (
$row $result->fetch_row()) { 
        echo 
'<tr><td>'.$i;
        echo 
'<input name="cantidad'.$i.'" type="text" id="cantidad'.$i.'" size="4" maxlength="5" class="validate[\'number\']" /></td><td>';
        echo 
'<input name="codigo'.$i.'" type="hidden" id="codigo'.$i.'" value="'.$row[1].'" />'.$row[1].'</td><td>';
        echo 
'<input name="descripcion'.$i.'" type="hidden" id="descripcion'.$i.'" value="'.$row[2].'" />'.$row[2];
        echo 
'</td></tr>'
        
$i++;
    }    
    
$result->close(); 
}  

/* close connection */
$mysqli->close(); 
¿Por qué no me trae todos los registros?
Hago un "SELECT * from productos" en la base de datos MySQL y me trae 115 registros.
Cuando los muestra en la página web me trae 114.
Lo que puede descubrir es que es el primer registro el que no me trae, ¿Why?.
Thanks.
  #2 (permalink)  
Antiguo 25/03/2009, 14:08
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: No me trae todos los registros, ¿por que?

quizas porque el primer fetch.. lo haces fuera del while , luego en el while cuando haces fetch ya esta apuntando a 2º registro
elimina el 1º fetch y pruebalo
  #3 (permalink)  
Antiguo 25/03/2009, 14:13
 
Fecha de Ingreso: marzo-2009
Ubicación: Argentina
Mensajes: 6
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No me trae todos los registros, ¿por que?

Antes que nada gracias por responder tan rápido doylelives.
No, lo que ves en ese código es todo lo que hace esa página y no viene con GET o POST de otra página.
  #4 (permalink)  
Antiguo 25/03/2009, 14:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No me trae todos los registros, ¿por que?

WTF!!!! doylelives no menciono nada de GET o POST y solo sugiere (correctamente) eliminar la linea que esta antes del while:

$row = $result->fetch_row(); // <------ esta linea
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 25/03/2009, 14:38
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: No me trae todos los registros, ¿por que?

1º viendo el codigo veo que usas php 5 orientado a objetos nunca lo use.
pero los fetch tienen la funcionalidad de acceder a un registro de un resultado de una consulta.
$row = $result->fetch_row();
por lo tanto el fetch fuera del while aloja el 1º registro en row.
dentro de la condicion del while:
while ($row = $result->fetch_row()) ...
vuelves a usar fetch por lo tanto accedes al siguiente registro, o sea el 2º
es por eso q al empezar a mostrar los input lo esta haciendo a partir del 2º registro.
capish!!
  #6 (permalink)  
Antiguo 25/03/2009, 14:46
 
Fecha de Ingreso: marzo-2009
Ubicación: Argentina
Mensajes: 6
Antigüedad: 15 años, 1 mes
Puntos: 0
Tienen razón mil disculpas, no supe interpretar lo que me estaba diciendo doylelives.
Triby Muchas gracias por darme un empujoncito para darme cuenta donde estaba el error.
Muchas gracias, ya está solucionado.

Gracias a ambos doylelives y Triby.

doylelives, si lo entendí muchísimas gracias again.

Última edición por GatorV; 25/03/2009 a las 15:01
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 13:49.