Foros del Web » Programando para Internet » PHP »

Ayuda para implementar Group By

Estas en el tema de Ayuda para implementar Group By en el foro de PHP en Foros del Web. Hola amigos, quisiera molestarles para k puedan ayudar con esto (de veras k inicie con su desarrollo y ya no puedo dar marcha atras a ...
  #1 (permalink)  
Antiguo 27/11/2008, 13:01
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 9 meses
Puntos: 2
Pregunta Ayuda para implementar Group By

Hola amigos, quisiera molestarles para k puedan ayudar con esto (de veras k inicie con su desarrollo y ya no puedo dar marcha atras a elegir otras opciones-"se guarda la orden de pedido en un carro serializado") asi k lo que me kda seguir pa delante...

bien el tema esta en k tengo el siguiente php el cual realiza un LISTADO DE CONSUMO DE UN PRODUCTO X:
Código php:
Ver original
  1. <!-- <?php
  2. include('conec.php');
  3. conectarse();
  4. function array_flatten($array, &$newArray ,$prefix='',$delimiter='|')
  5. {
  6.     foreach ($array as $key => $child)
  7.     {
  8.         if (is_array($child))
  9.         {
  10.             $newPrefix = $prefix.$key.$delimiter;
  11.             $newArray =& array_flatten($child, $newArray ,$newPrefix, $delimiter);
  12.         }else
  13.         {
  14.             $newArray[$prefix.$key] = $child;
  15.         }
  16.     }
  17.     return $newArray;
  18. }
  19. $sql="SELECT idFactura,compra_serializada2,estatus,factura.idUsername,usuario.username,establecimiento
  20. FROM factura LEFT JOIN usuario ON factura.idUsername=usuario.username
  21. WHERE estatus='atendido'";
  22. $qry=mysql_query($sql) or die( "Error en $sql, error: " . mysql_error() );
  23. ?>
  24. <body>
  25. <table border=1>
  26. <tr>Consumo del Producto X
  27. <?php
  28. while($row=mysql_fetch_array($qry))
  29. {
  30.     $carro2=unserialize($row['compra_serializada2']);
  31.     $array=$carro2;
  32.     $newArray=array();
  33.     array_flatten($array,$newArray);
  34.     //print_r( $newArray )."<br />";
  35. ?>
  36. <form name="" method="post" action="archivo.php">
  37. <tr>
  38.     <td><?php echo $row['idFactura'] ?></td>
  39.     <td><?php echo $row['establecimiento'] ?></td>
  40.     <td>
  41.     <?php
  42.     $cantidad_autorizada=$newArray['06d84b98e0d1df|cantidad_autorizada'];
  43.     if($cantidad_autorizada=="")
  44.     {
  45.         echo $cantidad=0;
  46.     }else
  47.     {
  48.         echo $cantidad=$cantidad_autorizada;
  49.     }
  50.     ?>
  51.     </td>
  52. </tr>
  53. <?php
  54. }
  55. ?>
  56. </table>
  57. </form>
  58. </body>-->

y este es el resultado:
idFactura establecimiento cantidad
--------------------------------------------------
00111 Establecimiento 11 0
00113 Establecimiento 11 0
00114 Establecimiento 33 80
00117 Establecimiento 33 60
00120 Establecimiento 33 40
00119 Establecimiento 99 9000

****Entonces el punto está en k el LISTADO cambie a: "CONSUMO DEL PRODUCTO X POR C/ESTABLECIMIENTO", entiendo k DEBO USAR para este caso el GROUP BY...
establecimiento cantidad
---------------------------------------------
Establecimiento 11 0 (0+0)
Establecimiento 33 180 (80+60+40)
Establecimiento 99 9000 (9000)

pero como podría implementarlo para este caso, se podrá???

Gracias de antemano
  #2 (permalink)  
Antiguo 06/03/2009, 05:53
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Ayuda para implementar Group By

Hola,

Podrías explicar un poco más lo que quieres obtener con una consulta SQL.

El group by se utiliza cuando se quiere obtener información "agrupada" por algun campo.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #3 (permalink)  
Antiguo 06/03/2009, 06:47
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Ayuda para implementar Group By

Lo que yo entendi es lo siguiente:

SELECT establecimiento, {campoconsumo}
FROM factura LEFT JOIN usuario ON factura.idUsername=usuario.username
WHERE estatus='atendido'
group by establecimiento
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 01:01.