PHP - mostrar datos de un tabla en un array

   
Vista:

mostrar datos de un tabla en un array

Publicado por jose alberto (7 intervenciones) el 19/12/2012 20:53:47
Hola soy nuevo en esto y quisiera que me ayuden con lo siguiente:

realizo la consulta de una tabla donde tengo registrado la exitencia de los articulos por deposito
al consultar dicha tabla me trae los siguiente datos de esta forma:
art 1 - nombre del articulo - existencia - deposito 1
art 1 - nombre del articulo - existencia - deposito 2
art 1 - nombre del articulo - existencia - deposito 3
art 2 - nombre del articulo - existencia - deposito 1
art 2 - nombre del articulo - existencia - deposito 2
art 2 - nombre del articulo - existencia - deposito 3
art 3 - nombre del articulo - existencia - deposito 1
art 3 - nombre del articulo - existencia - deposito 2
art 3 - nombre del articulo - existencia - deposito 3

mi deseo en cargar los datos en una matriz de 4 columna para luego mostrarlo de la siguiente forma

codigo descripcion deposito 1 deposito 2 deposito 3
art1 nombre del articulo existencia 1 existencia 2 existencia 3
art2 nombre del articulo existencia 1 existencia 2 existencia 3
art3 nombre del articulo existencia 1 existencia 2 existencia 3

desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

mostrar datos de un tabla en un array

Publicado por xve (5513 intervenciones) el 20/12/2012 07:55:43
Hola Jose, desconozco las estructuras de las tablas para conseguir el resultado de la consulta, pero podrías llegar a conseguir que la consulta sql te devuelve las campos en el formato que deseas para no tener que generar posteriormente el array que indicas.

De todas maneras, para generar el array yo lo realizaría con un bucle por todos los registros y agruparía por el código del articulo en un array bidimensional.

Tienes realizado algo del código para poder ayudarte?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

mostrar datos de un tabla en un array

Publicado por jose alberto (7 intervenciones) el 20/12/2012 12:43:00
Muchas gracias por contestar te muestro mi rutina para que lo veas

**** primeramente consulta la tabla y si trae datos realizo lo siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
   $y = -1;
   $stock = array();
   $ltalle = '';
 
/* recorro la tabla y guardo los resultados en el array*/
 
   while($row = ibase_fetch_object($result)) {
    if($ltalle != ltrim($row->TALLE)){
	    $y ++;
		$ltalle = ltrim($row->TALLE);
		$stock['$y'][0] = ltrim($row->TALLE);
	 }
 
 	 if ($row->COD_DEPOSITO == 23) {
	    $stock['$y'][1] = $row->EXISTENCIA;
		}
	 else{
		$stock['$y'][1] = 0;
	 }
 
 
	 if ($row->COD_DEPOSITO == 33) {
		$stock['$y'][2] = $row->EXISTENCIA;
        }
	 else{
		$stock['$y'][2] = 0;
	 }
 
	 if ($row->COD_DEPOSITO == 99) {
		$stock['$y'][3] = $row->EXISTENCIA;
        }
	 else{
		$stock['$y'][3] = 0;
	 }
 
       /*  esta parte muestro en pantalla si en realidad guarda los datos en mi array*/
	echo $y;
	echo $stock['$y'][0];
	echo $stock['$y'][1];
	echo $stock['$y'][2];
	echo $stock['$y'][3];
 
    }
 
   ibase_free_result($result);
   ibase_close($conexion);
?>


********************************************
terminado el recorrido de la tabla y guarda en el array genero un tabla en donde muestro
el array el problema es que solo me muestra los datos de ultimo registro o sea que me deberia
de mostrar los siguiente datos
1
2
3
4
5
talle    deposito 23   deposito 33     deposito 99
L                       0                      0                      42
M                       0                     0                       15
X                       0                      0                        20
XL                    0                      0                         39


PERO SOLO ME MUESTRA EL
1
XL                    0                      0                         39


Ahhh otra cosa como veras antes del recorrido del array verifico el tamaño en la variable $size y me da el valor 1 y no 4 como deberia ser
********************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=1>
   <TR>
    <TD bgcolor="#0066FF"><span class="Estilo8"><div align="center" >TALLE</span></div></TD>
	 <TD bgcolor="#0066FF"><span class="Estilo8">&nbsp;DPTO. 23</span>&nbsp;</TD>
 	 <TD bgcolor="#0066FF"><span class="Estilo8">&nbsp;DPTO. 33</span>&nbsp;</TD>
	 <TD bgcolor="#0066FF"><span class="Estilo8">&nbsp;DPTO. 99</span>&nbsp;</TD>
 
    </TR>
<?php
 
   $y=0;
   $size = sizeof($stock);
   echo '<BR>' . $size;
	while ($y < $size ) {
     	echo '<TR><TD>' . $stock['$y'][0] . '</TD>';
    	echo '<TD>' . $stock['$y'][1] . '</TD>';
    	echo '<TD>' . $stock['$y'][2] . '</TD>';
    	echo '<TD>' . $stock['$y'][3] . '</TD></TR>';  /*
		echo '<TR><TD>' . $stock['$y'][0] . '</TD></TR>';*/
    	$y++;
	}
?>
</table>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

mostrar datos de un tabla en un array

Publicado por xve (5513 intervenciones) el 20/12/2012 16:52:37
Hola Jose, creo que tienes varios errores... "y ++" es erróneo ya que no suma, tendría que ser "y++" sin ningún espacio en medio.
Si te fijas, únicamente tienen valores el deposito99, ya que es el ultimo... primero tienes que definirlas todas a 0 y luego hacer los if's

Revisa este código haber si te funciona:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
while($row = ibase_fetch_object($result))
{
    if($ltalle != ltrim($row->TALLE))
    {
        $y++;
        $ltalle = ltrim($row->TALLE);
        $stock[$y][0] = ltrim($row->TALLE);
        $stock[$y][1] = 0;
        $stock[$y][2] = 0;
        $stock[$y][3] = 0;
    }
 
    if ($row->COD_DEPOSITO == 23) {
        $stock[$y][1] = $row->EXISTENCIA;
    }
 
    if ($row->COD_DEPOSITO == 33) {
        $stock[$y][2] = $row->EXISTENCIA;
    }
 
    if ($row->COD_DEPOSITO == 99) {
        $stock[$y][3] = $row->EXISTENCIA;
    }
}


Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

mostrar datos de un tabla en un array

Publicado por jose alberto j_patibelo@hotmail.com (7 intervenciones) el 20/12/2012 20:31:08
Hola gracias, lo estuve probando ahora si me aumento la cantidad de filas en el array pero me di cuenta que los al recorrer grabar el primer registro luego en el segundo registro me graba el valor en el fila 1 y 2 , y asi sucesivamente me va repitiendo en todos las filas el valor del ultimo registro leido
o sea que queda asi

fila 0 del array
XL 0 0 39
fila 1 del array
XL 0 0 39
fila 2 del array
XL 0 0 39
fila 3 del array
XL 0 0 39

desde ya muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

mostrar datos de un tabla en un array

Publicado por xve (5513 intervenciones) el 21/12/2012 08:01:43
Hola Jose, no no entiendo, ya que si hay 4 lineas en el array, es porque hay 4 tallas diferentes...

Como muestras el array?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

mostrar datos de un tabla en un array

Publicado por jose alberto (7 intervenciones) el 21/12/2012 12:36:55
Hola XVE

te lo explico mejor al final graba en todas las filas el valor del ultimo registro de la tabla

Saludos y muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar