Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Group by

Estas en el tema de Group by en el foro de PHP en Foros del Web. Hola a todos tengo una consulta la cual agrupo por folio, pero no he encontrado la manera de que me muestre los conceptos que tienen ...
  #1 (permalink)  
Antiguo 10/03/2014, 13:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Group by

Hola a todos tengo una consulta la cual agrupo por folio, pero no he encontrado la manera de que me muestre los conceptos que tienen ese folio (solo me muestra un concepto) Ejemplo:
folio 100 concepto: Chocolates
folio:100 concepto:flores

tengo este codigo

Código PHP:
"SELECT * from .... group by folio"

<?php do { ?>
    

            <?php echo $row_consulta['folio']; ?>

                     <?php echo $row_consulta['concepto']; ?>

   <?php } while ($row_consultamysql_fetch_assoc($consulta)); ?>

y este es mi resultado (1 registro)
Folio----Concepto
100-----Chocolates

Me gustaría tener algo asi (1 registro)
Folio----Concepto
100-----Chocolates, Flores....

Desde ya mil gracias
  #2 (permalink)  
Antiguo 10/03/2014, 13:43
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Group by

Lo más sencillo en este caso va a ser eliminar la cláusula GROUP BY, ordenarlo por folio y hacer el formateo en PHP, por ejemplo:
Código PHP:
"SELECT * from .... ORDER BY folio ASC" 

<?php
$folio_ant 
"";
while (
$row_consultamysql_fetch_assoc($consulta)){

    if(
$folio_ant != $row_consulta['folio']){
        echo 
"<br/>".$row_consulta['folio'].": ".;
        echo 
$row_consulta['concepto'];
    }else{
        echo 
", ".$row_consulta['concepto'];
    }

$folio_ant $row_consulta['folio'];
}
?>
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #3 (permalink)  
Antiguo 10/03/2014, 17:03
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Group by

Amigo hice la prueba pero no me muestra nada... he camniado mis parametros y funciona perfecto... una ultima cosa puedo hacer un while dentro de otro... es decir para obtener mi total... pero como los conceptos...

ejemplo:
folio-----conceptos----------total
100------chocolate,flores---500

Última edición por Briss; 10/03/2014 a las 17:09
  #4 (permalink)  
Antiguo 10/03/2014, 17:24
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Group by

Despues del while agregue esto
$suma+=$row_consulta['pago'];

y mi variable $suma la imprimi en las llaves del else y funciona...
pero si solo tengo un concepto no lo hace donde porque????
  #5 (permalink)  
Antiguo 11/03/2014, 08:01
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Group by

En ese caso no lo hace porque sólo entra en el else cuando es el segundo,tercero, cuarto... concepto.
Se podrían hacer unos cambios en el bucle:
Código PHP:
<?php
$folio_ant 
"";
$suma 0;
while (
$row_consultamysql_fetch_assoc($consulta)){

    if(
$folio_ant != $row_consulta['folio']){
        echo 
$suma."<br />"//Finalizamos el folio anterior
        
$suma 0;
        echo 
$row_consulta['folio'].": ".;
        echo 
$row_consulta['concepto'];
    }else{
        echo 
", ".$row_consulta['concepto'];
    }

    
$suma+=$row_consulta['pago'];

    
$folio_ant $row_consulta['folio'];
}
echo 
$suma."<br />"//Finalizamos el último folio
?>
Esto debería funcionar aunque como ves queda muy bonito.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP

Etiquetas: group, mysql, registro, select
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 05:47.