Foros del Web » Programando para Internet » PHP »

manejando arrays

Estas en el tema de manejando arrays en el foro de PHP en Foros del Web. Muy buenas. Estoy queriendo trabajar con un array sacando unos valores de una bd pero solo se me queda un valor en la variable Código ...
  #1 (permalink)  
Antiguo 02/06/2004, 08:09
Avatar de cometron  
Fecha de Ingreso: mayo-2003
Ubicación: Madrid
Mensajes: 151
Antigüedad: 20 años, 10 meses
Puntos: 0
manejando arrays

Muy buenas. Estoy queriendo trabajar con un array sacando unos valores de una bd pero solo se me queda un valor en la variable

Código PHP:
$consulta=mysql_query("SELECT valor FROM tabla");
if(
$mysql_num_rows!=0)
    {
    
$row=mysql_fetch_array($consulta);
    } 
despues del if quiero q en la variable $row me queden todos los valores q hay pero solo se me queda ultimo.
  #2 (permalink)  
Antiguo 02/06/2004, 08:49
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 21 años, 4 meses
Puntos: 1
Usa un ciclo

Que tal :

mira para que puedas obtener todos los valores puedes utilizar un ciclo por ejemplo:

Código PHP:
   do{
       
$variable1 $row['campo1'];
       
$variable2 $row['campo2'];
       
$variable3 $row['campo3'];
       .
       .
       .
       
$variable_n $row['campo_n'];
   }while(
$row mysql_fetch_array($consulta)); 
espero te sirva.

  #3 (permalink)  
Antiguo 02/06/2004, 08:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
mysql_fecht_xxx() (sea array, assoc, object .. etc) funciona de la siguiente manera:

1) Se obtiene un registro desde el inicio del resultado de la consulta ("record-set").
2) Se mueve el puntero interno de la consulta a la siguiente posición ..
3) Al llegar al final del "record-set" (de los resultados obtenidos de la consulta realizada) .. devuelve un "boolean": FALSE ..

Por eso .. si "llamas" una sóla vez a esa función .. sólo veras el primer registro (o si ejecutastes antes esa función .. el siguiente).

Solución:
Usa un bucle para recorrer ese "record-set" completo .. Como ya sabes (de la teoría que expliqué y puedes ver en www.php.net ...) que al llegar al final va arrojar un "FALSE" .. puedes usar un bucle tipo while() que es lo que mejor vá para estos casos.

Código PHP:
$resultado=mysql_query("SELECT ......");
if(
mysql_num_rows($resultado) > 0) {
    while(
$row=mysql_fetch_array($resultado)){
       echo 
$row['nombre_campo'];
    }
} else {
     echo 
"No hay resultados";

PD: .. el mysql_num_rows() no es una variable .. sino una función que se le ha de pasar como parámetro ese "record-set" que genera un mysql_query() ...

Un saludo,
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 07:39.