Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No puedo cargar correctamente matriz

Estas en el tema de No puedo cargar correctamente matriz en el foro de PHP en Foros del Web. Hola, paso el código. Código: $renglon=0; while ($row=mysql_fetch_array($result)) { $renglon++; $data = array( $renglon => array('periodo'=>$row["periodo"], 'codigo'=>$row["codigo"],'detalle'=>$row["detalle"],'cantidad'=>$row["canti"],'importe'=>$row["totalh"])); var_dump($data); echo "<br>"; } // END WHILE for ...
  #1 (permalink)  
Antiguo 25/11/2014, 10:16
 
Fecha de Ingreso: enero-2003
Mensajes: 120
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta No puedo cargar correctamente matriz

Hola, paso el código.

Código:
$renglon=0;

while ($row=mysql_fetch_array($result)) {
	$renglon++;
	$data = array(
            $renglon => array('periodo'=>$row["periodo"], 'codigo'=>$row["codigo"],'detalle'=>$row["detalle"],'cantidad'=>$row["canti"],'importe'=>$row["totalh"]));

	var_dump($data);
	echo "<br>";
} // END WHILE

for ($i=0; $i<39; ++$i) {
		 echo "i= $i -> ". $data[$i]['periodo']. "   ".$data[$i]['codigo']."   ".$data[$i]['detalle']."   ".$data[$i]['cantidad']."   ".$data[$i]['importe']. "<br>";
}
El while lo recorre completo y el var_dump dentro del while me muestra lo siguiente.
O sea aparentemente está cargando bien...
Código:
array(1) { [1]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "420101" ["detalle"]=> string(30) "CONSULTA EN CONSULTORIO DIURNA" ["cantidad"]=> string(1) "1" ["importe"]=> string(5) "80.00" } } 
array(1) { [2]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "121919" ["detalle"]=> string(21) "Yeso ANTEBRAQUIPALMAR" ["cantidad"]=> string(1) "1" ["importe"]=> string(6) "290.00" } } 
array(1) { [3]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "420101" ["detalle"]=> string(30) "CONSULTA EN CONSULTORIO DIURNA" ["cantidad"]=> string(2) "13" ["importe"]=> string(7) "1300.00" } } 
array(1) { [4]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "420101" ["detalle"]=> string(30) "CONSULTA EN CONSULTORIO DIURNA" ["cantidad"]=> string(1) "1" ["importe"]=> string(5) "85.00" } } 
array(1) { [5]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "420101" ["detalle"]=> string(30) "CONSULTA EN CONSULTORIO DIURNA" ["cantidad"]=> string(1) "5" ["importe"]=> string(6) "500.00" } } 
array(1) { [6]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "420101" ["detalle"]=> string(30) "CONSULTA EN CONSULTORIO DIURNA" ["cantidad"]=> string(1) "4" ["importe"]=> string(6) "440.00" } } 
array(1) { [7]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "420101" ["detalle"]=> string(30) "CONSULTA EN CONSULTORIO DIURNA" ["cantidad"]=> string(1) "1" ["importe"]=> string(6) "100.00" } } 
array(1) { [8]=> array(5) { ["periodo"]=> string(7) "2014051" ["codigo"]=> string(6) "420101" ["detalle"]=> string(30) "CONSULTA EN CONSULTORIO DIURNA" ["cantidad"]=> string(1) "1" ["importe"]=> string(5) "50.00" } }
perooo.... el for que está al final... muestra lo que abajo se ve

Código:
i= 0 -> 
i= 1 -> 
.................
i= 36 -> 
i= 37 -> 
i= 38 -> 2014051 121608 DEDO DE LA MANO 1 173.76
O sea solo quedó cargado la última posición.

Qué podré estar haciendo mal ?

Probé lo siguiente en cargar $data pero me obtiene valores que no son compatibles con una función donde estoy enviando.

Código:
$data[$renglon][] = (valor1, valor2, valor3);
$data[] = array(valor1, valor2, valor3); 
$data[$renglon] =array(valor1, valor2, valor3); 
$data[][]=(valor1, valor2, valor3); 
$data = array(array(valor1, valor2, valor3));
Muchas gracias!
__________________
Sergio.
  #2 (permalink)  
Antiguo 25/11/2014, 11:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: No puedo cargar correctamente matriz

Simplifica

Código PHP:
Ver original
  1. $data=array();
  2. while ($row=mysql_fetch_array($result)) {
  3.     array_push($data, $row);
  4. }// END WHILE
  5.  
  6. var_dump($data);
  7. echo "<br>";
  8.  
  9. for ($i=0; $i<count($data); ++$i) {
  10.   echo "i= $i -> ". $data[$i]['periodo']. "   ".$data[$i]['codigo']."   ".$data[$i]['detalle']."   ".$data[$i]['cantidad']."   ".$data[$i]['importe']. "<br />";
  11. }
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 25/11/2014, 12:28
 
Fecha de Ingreso: enero-2003
Mensajes: 120
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: No puedo cargar correctamente matriz

Muchas gracias por responder, la simplificación no iría en este caso porque no todos los campos de la instrucción SQL van en el arreglo, hay más pero por el tema de agrupación+orden era necesario nombrarlos.

Solucioné en la asignación de $data

$data[$renglon] = array(valores como se ven en el ejemplo);

Muchas gracias compañeros.

Un saludo.
__________________
Sergio.

Etiquetas: correctamente, matriz, sql
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 19:16.