Foros del Web » Programando para Internet » PHP »

Una duda acerca de mysql_fetch_array

Estas en el tema de Una duda acerca de mysql_fetch_array en el foro de PHP en Foros del Web. Hola amigos temgo una duda, cuando uso el mysql_fetch_arry para llamarlo o imprimirlo despues lo hago de esta manera Código PHP: echo  $rows [ "nombre_field" ...
  #1 (permalink)  
Antiguo 23/12/2003, 14:46
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 21 años
Puntos: 0
Una duda acerca de mysql_fetch_array

Hola amigos temgo una duda, cuando uso el mysql_fetch_arry para llamarlo o imprimirlo despues lo hago de esta manera

Código PHP:
echo $rows["nombre_field"]; 
y me muestra el resultado sin problemas ahora hay vecez que no me muestra cuando lo uso de esta manera solamente cuando le pomgo el indice del fields que quiero imprimir o sea:

Código PHP:
echo $rows[3]; 
porque sucede eso?, cuando se usa una manera o la otra?

Muchas gracias
  #2 (permalink)  
Antiguo 23/12/2003, 14:56
Avatar de TheRock  
Fecha de Ingreso: mayo-2002
Ubicación: Sucre - Bolivia
Mensajes: 189
Antigüedad: 22 años, 5 meses
Puntos: 0
Hola:

PHP es un intérprete case sensitive, diferencia entre mayúsculas y minúsculas debes respetar los nombres de tus variables tal como las definiste, otra situación podría ser que mysql siempre inicia los indices de los campos en 0,1,2,3, etc.

Si aun no te funciona lo que dices, seria bueno que nos muestres la definicion de tus campos y tambien el código que indicas.

Saludos cordiales.
  #3 (permalink)  
Antiguo 23/12/2003, 15:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Si te fijas en el manual, www.php.net/mysql_fetch_array , te dice que por defecto te crea un array con 2 elementos por campo, uno usando como indice el nombre del campo, y otro usando como indice la posicion en la lista de campos del select (comenzando en 0). Lo puedes ver si hacer un:
Código PHP:
echo '<pre>';
print_r($row);
echo 
'</pre>'
La razon por la que no puedas acceder por el nombre del campo puede ser porque en la consulta no tienes un nombre valido de campo. Por ejemplo, si tienes:

SELECT COUNT(*), tabla.campo FROM ..

La unica forma de acceder a esos 2 campos es con el indice numerico. El primero porque es una funcion, y el segundo porque es de la forma tabla.campo (esto no se sigue pasando, a mi me pasaba). La solucion es usar "alias" para esos campos, y usar el "alias" como indice:

SELECT COUNT(*) as total, tabla.campo as mi_campo FROM ..

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 25/12/2003, 22:02
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Agregando algo...
Como ya te dijo josemi... mysql_fetch_array() crea un array con dos elementos por campo...
Pero existe otra función llamada mysql_fetch_row() que únicamente crea el array con los índices numéricos...
Digo esto porque es probable que hayas copiado un script que utilice esta función y no te hayas dado cuenta... En ese caso, cambia la función fetch_row por fetch_array... lee los comentarios del manual sobre el rendimiento (en el enlace que dejó josemi) y verás que no hay mayor problema.

Saludos
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 21:35.