Foros del Web » Programando para Internet » PHP »

crear un array dentro de un ciclo y al finalizar mostrar todos los datos que contiene

Estas en el tema de crear un array dentro de un ciclo y al finalizar mostrar todos los datos que contiene en el foro de PHP en Foros del Web. Primero que todo tengan todos ustedes un cordial saludo. mi pregunta es la siguiente: tengo una consulta sql que me arroja por ejemplo (nombre y ...
  #1 (permalink)  
Antiguo 12/03/2012, 11:27
 
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 9 años
Puntos: 1
Pregunta crear un array dentro de un ciclo y al finalizar mostrar todos los datos que contiene

Primero que todo tengan todos ustedes un cordial saludo.
mi pregunta es la siguiente:

tengo una consulta sql que me arroja por ejemplo (nombre y edad) y quiero mostrar todos los nombres de los usuarios con su respectiva edad,

$result = mysql_query("SELECT nombre, edad FROM formulas ");

aca almaceno el numero de resultados de la consulta
$num_rows = mysql_num_rows($result);



aca almaceno los resultados en un arreglo :
$dataMultiple = array(
'oxidos' => array(
$nombre[0] => $edad[0],
$nombre[1] => $edad[1],
$nombre[2] => $edad[2],
$nombre[3] => $edad[3],

));

pero esto funciona en el caso que uno sepa el numero de resultados pero cuando son muchos se complica porque abria que arreglar el codigo a $nombre[4] => $edad[4] y asi susesivamente, por eso quiero almacenarlos con un ciclo:

for ($j = 0; $j < $num_rows; $j++) {

$dataMultiple = array(
$oxido[$j] => $valor[$j]
);

}

pero cuando lo intento mostrar el resultado al finalizar el ciclo solo me muestra el ultimo valor que almaceno.

como podria hacer que me muestre todo lo que arrojo la consulta.

de antemano muchas gracias
  #2 (permalink)  
Antiguo 12/03/2012, 11:30
Avatar de Chico3001  
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico, DF
Mensajes: 112
Antigüedad: 8 años, 2 meses
Puntos: 12
Respuesta: crear un array dentro de un ciclo y al finalizar mostrar todos los datos q

usa un ciclo foreach o una rutina DO - WHILE

$k=0;
do {
....
....
$k++;
} while (isset($result[$k]));
  #3 (permalink)  
Antiguo 12/03/2012, 11:52
 
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 9 años
Puntos: 1
Respuesta: crear un array dentro de un ciclo y al finalizar mostrar todos los datos q

lo que pasa es que en cada vuelta del ciclo remplaza el valor anterior y la idea es que los almacene todos
  #4 (permalink)  
Antiguo 12/03/2012, 16:19
 
Fecha de Ingreso: septiembre-2011
Ubicación: DF
Mensajes: 26
Antigüedad: 8 años, 2 meses
Puntos: 6
Respuesta: crear un array dentro de un ciclo y al finalizar mostrar todos los datos q

Hola que tal,

Si quieres meter todos los registros de una consulta en un arreglo, entonces haz un ciclo en el que recorras todos tus resultados y los guardas en un arreglo algo asi:


$resultado = mysql_query($consulta, $enlace);

$aData = array(); //arreglo que contendra todos los registros de la consulta

while($rs = mysql_fetch_assoc($resultado)){

array_push($aData, $rs);

}


print_r($aData);


Saludos
  #5 (permalink)  
Antiguo 12/03/2012, 18:17
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 8 años, 4 meses
Puntos: 793
Respuesta: crear un array dentro de un ciclo y al finalizar mostrar todos los datos q

Tiene que haber una clave intermedia que diferencie a tus claves y valores o sino se van a "pisar" todos sobre la clave oxidos. Creo que quieres hacer algo así:

Código PHP:
Ver original
  1. <?php
  2. $c = mysql_connect('localhost', 'root', '12345');
  3. $sql = 'select nombre, edad from formulas';
  4. $res = mysql_query($sql) or die('Error: ' . mysql_error());
  5.  
  6. $dataMultiple = array();
  7.  
  8. while ($reg = mysql_fetch_array($res)) {
  9.     $dataMultiple['oxidos'][] = array($reg['nombre'] => $reg['edad']);
  10. }
  11.  
  12. echo '<pre>';
  13. print_r($dataMultiple);
  14. echo '</pre>';

El array de resultado sería por ejemplo:

Cita:
Array
(
[oxidos] => Array
(
[0] => Array
(
[Meghan] => 48
)

[1] => Array
(
[Maisie] => 55
)

[2] => Array
(
[Dennis] => 64
)
o como propone Bish0p, pero no te recomiendo usar la función array_push.

Código PHP:
Ver original
  1. <?php
  2. $c = mysql_connect('localhost', 'root', '12345');
  3. $sql = 'select nombre, edad from formulas';
  4. $res = mysql_query($sql) or die('Error: ' . mysql_error());
  5.  
  6. $dataMultiple = array();
  7.  
  8. while ($reg = mysql_fetch_assoc($res)) {
  9.     $dataMultiple['oxidos'][] = $reg;
  10. }
  11.  
  12. echo '<pre>';
  13. print_r($dataMultiple);
  14. echo '</pre>';

El array de resultado sería por ejemplo:

Cita:
Array
(
[oxidos] => Array
(
[0] => Array
(
[nombre] => Meghan
[edad] => 48
)

[1] => Array
(
[nombre] => Maisie
[edad] => 55
)

[2] => Array
(
[nombre] => Dennis
[edad] => 64
)

[3] => Array
(
[nombre] => Freya
[edad] => 54
)
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
  #6 (permalink)  
Antiguo 13/03/2012, 08:23
 
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 9 años
Puntos: 1
Respuesta: crear un array dentro de un ciclo y al finalizar mostrar todos los datos q

muchas gracias a todos por su ayuda, creo que me confundi a la hora de colocar el codigo es que mi codigo real trata es de oxidos y valores no de nombres y edad si no que trate de explicarme mas facil colocando solo nombre y edad pero se me olvido modificar lo demas.

pero muchas gracias a todos pero ya logre lo que quería y ademas de lo que especifique al inicio tambien lo tenia que mostrar en un diagrama de barras para ello utilice la clase GoogChart.class.php, aqui les dejo el codigo por si alguien mas lo necesita:

<?php

$id = $_GET["id"];


include("conexion.php");

$result1 = mysql_query("SELECT Id_fuente, oxido, Valor FROM formulas WHERE Id_fuente = \"".$id."\" and Estado = 'Vigente'");
$row1 = mysql_fetch_array($result1);

$i=0;

while($registro=mysql_fetch_array($result1))
{
$oxido[$i]=$registro["oxido"];
$valor[$i]=$registro["Valor"];
$i++;

}

include('GoogChart.class.php');

$chart = new GoogChart();

$color = array( '#01DF01', '#DF0101', '#0101DF',);

// esta era la parte que queria averiguar y que ya pude hacer
for($i=0;$i<count($oxido);$i++)
{
$vector[$oxido[$i]] = $valor[$i];
}

$dataMultiple = $vector;

// aca se muetra el diagrama de barras como imagen

echo "<h2>APORTES</h2>";
$chart->setChartAttrs( array(
'type' => 'bar-vertical',
//'title' => 'APORTES: ',
'data' => $dataMultiple,
'size' => array( 400, 300 ),
'color' => $color,
'labelsXY' => true,
));

echo $chart;
?>

Etiquetas: finalizar, mysql, sql, usuarios, ciclos
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 11:01.