Programación Web y Scripting > PHP
mysql_fetch_assoc salta primera fila
(1/1)
humbestr:
Buenas. Tengo un problemita que ojala me pudieran ayudar a resolverlo.
Tengo una consulta mysql y quiero pasarla a un array. Tengo el siguiente codigo, es una funcion de usuario que pasa el resultado de una consulta a un array:
function toArray($resultado)
{
do {
$registros[] = $fila;
}
while ($fila = mysql_fetch_assoc($resultado));
return $registros;
}
$vector = toArray($pru);
echo "<pre>";
print_r($vector);
echo "</pre>";
Aqui esta otro codigo que ya probe:
function toArray($resultado)
{
while ($fila = mysql_fetch_assoc($resultado)) {
$registros[] = $fila;
}
return $registros;
}
$vector = toArray($pru);
echo "<pre>";
print_r($vector);
echo "</pre>";
El detalle es que siempre se "brinca" la primera fila de la consulta, la presenta como nula. Ya probe con mysql_fetch_array y mysql_fetch_row y el resultado es similar. Ojala y tengan alguna sugerencia.
Gracias
DriverOp:
La primera función debería darte error pues $fila no está definida cuando ocurre el primer ciclo del bucle. Creo que lo que estás buscando hacer es esto:
[php:2dz0rdn3] function toArray($resultado) {$registros = Array();if ($fila = mysql_fetch_assoc($resultado)) { do { $registros[] = $fila; } while ($fila = mysql_fetch_assoc($resultado));}return $registros;}[/php:2dz0rdn3]
humbestr:
Gracias DriverOp, pero todavia sigue saltandose la primera fila.
Tambien hice un ciclo con do while para imprimir los datos en pantalla, y si muestra todos los que son, pero al momento de querer pasarlos a un array, omite la primera fila.
Saludos
jodijo5:
prueba con esto, es una pequeña variacion del código de mi amigo DriverOp, su código está bien, pero hay algunos servidores que hacen su pataleta de vez en cuando jeje :-D
--- Código: PHP --- function toArray($resultado) { $registros = Array(); while ($fila = mysql_fetch_assoc($resultado)) { $registros=array_push($registros,$fila); } return $registros;}
DriverOp:
jodijo5:
Simple y elegante, I like it! :D
Navegación
Ir a la versión completa