Foros del Web » Programando para Internet » PHP »

problema con mysql_fetch_array ayuda por favor

Estas en el tema de problema con mysql_fetch_array ayuda por favor en el foro de PHP en Foros del Web. hola no se si estoy usando bien el mysql_fetch_array les muestro y les comento el problema hago una consulta que pongo a continuación $sql3 = ...
  #1 (permalink)  
Antiguo 14/02/2009, 11:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
problema con mysql_fetch_array ayuda por favor

hola no se si estoy usando bien el mysql_fetch_array les muestro y les comento el problema

hago una consulta que pongo a continuación

$sql3 = "SELECT CODIGO_SERVICIO FROM tbl_servicio WHERE SERVICIO LIKE '%a%' order by SERVICIO ASC;";

esta consulta probando por el mysqlquery browser me entrega
CODIGO_SERVICIO
06
07
03
05

y luego miro cuantos hay

$cont = mysql_num_rows(mysql_query($sql3));
echo " EN CONSULTA HAY $cont";

Y listo me salen 4

cuando guardo la consulta y la visualizo con un

$cod_serv= mysql_fetch_array (mysql_query($sql3));
echo "$cod_serv[0]";

todo bien me aparece el 06, pero el problema es si cambio a

echo "$cod_serv[1]";

no me muestra nada se supone que los 4 datos deben estar guardados en arreglo en las posiciones 0,1,2 y 3, ayuda no me sirve con ninguno de los otro números, que estoy haciendo mal??

Gracias por sus respuestas
  #2 (permalink)  
Antiguo 14/02/2009, 11:06
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: problema con mysql_fetch_array ayuda por favor

Estas colocando un ; en la consulta

$sql3 = "SELECT CODIGO_SERVICIO FROM tbl_servicio WHERE SERVICIO LIKE '%a%' order by SERVICIO ASC;"; <----- solo es necesario la de final pero no la que tienes dentro
  #3 (permalink)  
Antiguo 14/02/2009, 11:08
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: problema con mysql_fetch_array ayuda por favor

Cita:
Iniciado por acoevil Ver Mensaje
Estas colocando un ; en la consulta

$sql3 = "SELECT CODIGO_SERVICIO FROM tbl_servicio WHERE SERVICIO LIKE '%a%' order by SERVICIO ASC;"; <----- solo es necesario la de final pero no la que tienes dentro
ok ya hice el cambio pero el problema continua...
  #4 (permalink)  
Antiguo 14/02/2009, 11:22
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: problema con mysql_fetch_array ayuda por favor

Tu problema es que estás esperando que mysql_fetch_array cree una matriz con todo el result set generado por mysql_query y eso no pasará, mysql_fetch_array simplemente obtendrá el primer resultado que consiga y lo meterá $cod_serv

Debes utilizar un loop para que mysql_fetch_array obtenga todos los resultados del result set, por ejemplo:
Código PHP:
while($cod_serv mysql_fetch_array(mysql_query($sql3)))
    print(
"Codigo de servicio: {$cod_serv['CODIGO_SERVICIO']}"); 
__________________
Usuario Reigistrado de linux #399288
  #5 (permalink)  
Antiguo 14/02/2009, 11:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: problema con mysql_fetch_array ayuda por favor

Cita:
Iniciado por Acron_0248 Ver Mensaje
Tu problema es que estás esperando que mysql_fetch_array cree una matriz con todo el result set generado por mysql_query y eso no pasará, mysql_fetch_array simplemente obtendrá el primer resultado que consiga y lo meterá $cod_serv

Debes utilizar un loop para que mysql_fetch_array obtenga todos los resultados del result set, por ejemplo:
Código PHP:
while($cod_serv mysql_fetch_array(mysql_query($sql3)))
    print(
"Codigo de servicio: {$cod_serv['CODIGO_SERVICIO']}"); 
pues hice eso y se volvio loco no para de cargar la pagina con las palabras

Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06Codigo de servicio: 06
Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\pruebas\index.php on line 90
  #6 (permalink)  
Antiguo 14/02/2009, 11:56
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: problema con mysql_fetch_array ayuda por favor

Ups... cosas que pasan ^^
Código PHP:
$result mysql_query($sql3);
while(
$cod_serv mysql_fetch_array($result))
    print(
"Codigo de servicio: {$cod_serv['CODIGO_SERVICIO']}"); 
__________________
Usuario Reigistrado de linux #399288
  #7 (permalink)  
Antiguo 14/02/2009, 12:03
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: problema con mysql_fetch_array ayuda por favor

@acoevil: no es un error poner el punto y coma al final de las sentencias SQL
@mcjarod lo que dice Acron_0248 es correcto, necesitas un ciclo for, while, do while etc... solo que se maneja diferente a lo que piensas.

Te sugiero esto
Código:
$sql3 = "SELECT CODIGO_SERVICIO FROM tbl_servicio WHERE SERVICIO LIKE '%a%' order by SERVICIO ASC;";
$result3 = mysql_query($sql3);
$cont = mysql_num_rows($result3);
while($cod_serv= mysql_fetch_array ($result3))
{
     print_r($cod_serv);
     // o puedes usar un echo pero indicando que campos son
     // echo $cod_serv["ID"];
     // echo $cod_serv["NOMBRE"];
     // echo $cod_serv["ESTATUS"];
     // etc.....
}
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #8 (permalink)  
Antiguo 14/02/2009, 12:08
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: problema con mysql_fetch_array ayuda por favor

$sql3 = "SELECT CODIGO_SERVICIO FROM tbl_servicio WHERE SERVICIO LIKE '%a%' order by SERVICIO ASC;"; mira el ; al final ese si es correcto y el que esta adentro tambien es correcto?? el que esta despues del ASC?? pues si esta bien asi pues que raro =/ igualmente gracias por el dato
  #9 (permalink)  
Antiguo 14/02/2009, 12:11
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: problema con mysql_fetch_array ayuda por favor

Si es correcto porque mysql_query puede ejecutar las consultas con el ; al final (como se haría desde una shell de mysql por ejemplo) o sin el ;
__________________
Usuario Reigistrado de linux #399288
  #10 (permalink)  
Antiguo 14/02/2009, 12:27
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: problema con mysql_fetch_array ayuda por favor

Cita:
Iniciado por Acron_0248 Ver Mensaje
Ups... cosas que pasan ^^
Código PHP:
$result mysql_query($sql3);
while(
$cod_serv mysql_fetch_array($result))
    print(
"Codigo de servicio: {$cod_serv['CODIGO_SERVICIO']}"); 
la verdad no se veía la diferencia en que se haga afuera o adentro, pero increiblemente ya funcionó... muchas gracias friend
  #11 (permalink)  
Antiguo 14/02/2009, 12:41
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: problema con mysql_fetch_array ayuda por favor

La diferencia radica en que
- afuera, se genera la "lista" de registros que coiniciden con las condiciones y el fetch unicamente mueve el apuntador al siguiente registro
- adentro, la consulta se ejecuta cada vez que se repite el ciclo por lo que SIEMPRE el apuntador estará al inicio de la lista.

Que bueno que este resuelto el tema.

Saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #12 (permalink)  
Antiguo 14/02/2009, 12:53
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: problema con mysql_fetch_array ayuda por favor

Se me adelantó Avatar810, así que pueden borrar acá je je
__________________
Usuario Reigistrado de linux #399288
  #13 (permalink)  
Antiguo 15/02/2009, 10:10
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: problema con mysql_fetch_array ayuda por favor

hola pues para completar según el ejemplo de Acron_0248 hice lo siguiente:

$conteo=0;
while($cod_servi = mysql_fetch_array($result3))
{
$cod_serv["$conteo"]=$cod_servi['CODIGO_SERVICIO'];
$conteo=$conteo+1;
}

gracias
  #14 (permalink)  
Antiguo 15/02/2009, 11:15
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: problema con mysql_fetch_array ayuda por favor

1) no hay error en el while
2) no es indispensable las comillas para la posición del arreglo
3) puedes hacer $conteo++ (es un poco mas rápido y "limpio"

que error te marca?
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #15 (permalink)  
Antiguo 15/02/2009, 12:59
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: problema con mysql_fetch_array ayuda por favor

mcjarod me quede un rato con lo que pones que te da un error, dices que seguiste con el código de Acron_0248, pero el puso de variable $result yo fui el que uso $result3, revisa que estés usando bien los nombres de las variables...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
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 16:38.