Foros del Web » Programando para Internet » PHP »

Listar array fuera deun 'while'...

Estas en el tema de Listar array fuera deun 'while'... en el foro de PHP en Foros del Web. Saludos... Tengo la siguiente estructura para generar un array: Código PHP: $query  =  "SELECT  id FROM table;" ; $result  =  mysql_query  ( $query ) or die ( mysql_error ());      while ( ...
  #1 (permalink)  
Antiguo 18/10/2011, 02:38
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Pregunta Listar array fuera deun 'while'...

Saludos...

Tengo la siguiente estructura para generar un array:

Código PHP:
$query "SELECT  id FROM table;";
$result mysql_query ($query) or die (mysql_error());
 
   while (
$file myuql_fetch_array (resultMYSQL_NUM)) [B]{[/B]

   
$my_array array($file[0]);

   list (
$lista_completa) = $my_array;

[
B]}[/B
Si incluyo un 'echo $lista_completa' dentro de los brakes '{}' se generarùa una lista con todos los IDs requeridos sin problemas. Pero si el 'echo' lo saco de los brakes, solamente me lista el último ID.

Por la estructura de mi script, necesito listar esa array completa fuera de los brakes... Cómo puedo hacerlo?

Gracias por vuestra ayuda.
__________________
Andrew :P
  #2 (permalink)  
Antiguo 18/10/2011, 06:39
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Listar array fuera deun 'while'...

claro por que si los dejas dentro del while te va mostrando uno a uno
por que se va re-asignando la variable $lista_completa

yo lo hago asi:

Código PHP:
Ver original
  1. $query = "SELECT  id FROM table;";
  2. $result = mysql_query ($query) or die (mysql_error());
  3. $my_array=array();
  4.    while ($file = myuql_fetch_array (result, MYSQL_NUM)) [B]{[/B]
  5.  
  6.    $my_array[] = $file[0];
  7.  
  8. [B]}[/B]  
  9. foreach($my_array as $value)
  10.     echo $value.'<br />';
  #3 (permalink)  
Antiguo 19/10/2011, 05:38
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Pregunta Respuesta: Listar array fuera deun 'while'...

Muchas gracias Patriarka!...

De hecho el consejo que me diste funciona perfectamente y se listan las variables fuera del 'while'... Sin embargo me he fijado que si después de listarlas le añades un condicional al código, nuevamente me vuelve a arrojar el último valor... Me explico con el código:

Código PHP:
    $query "SELECT  id FROM table;";
    
$result mysql_query ($query) or die (mysql_error());
    
$my_array=array();
       while (
$file myuql_fetch_array (resultMYSQL_NUM)) {
     
       
$my_array[] = $file[0];
     
    }  
    foreach(
$my_array as $value)
        
   if (
$value != 0) {
          
$mensaje 'existe en la base de datos';
      } else {
          
$mensaje ='no existe. Intentelo nuevamente';
    }
 
  echo 
'la ID N°'.$value.'  '.$mensaje.'<br />'
Lo cual quiere decir que imprima un mensaje si la ID es iferente a cero... Aunque en este caso me imprime solo el último valor.

Debería modificar mi condicional?
__________________
Andrew :P
  #4 (permalink)  
Antiguo 19/10/2011, 09:53
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Listar array fuera deun 'while'...

Lo que pasa es que esta línea:

Código PHP:
Ver original
  1. echo 'la ID N°'.$value.'  '.$mensaje.'<br />';

Debe ir dentro del bucle foreach para que se pueda iterar (y tal vez dentro del condicional dependiendo de tu lógica), te recomiendo que leas sobre bucles y arrays.

http://php.net/manual/es/index.php

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: fuera, mysql
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 00:40.