Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2011, 18:02
Avatar de mko
mko
 
Fecha de Ingreso: agosto-2010
Ubicación: la vida es un riesgo
Mensajes: 101
Antigüedad: 13 años, 8 meses
Puntos: 14
mi pqueño aporte

incrementar columnas y filas de manera dianmica con php y mysql
hace unos dias me tope con un queryde este tipo x lo q se me hico dificil pero no imposible la solucion.
aqui pongo un ejemplo bastante sencillo y entendible de como hacerlo con php y mysql. de antemano le digo que no se si es la forma optima de acerlo. pero de que funciona es un hecho. todo depende delo que decees y la ocmplejida de tu consulta

para hacerlo posible haremos uso de la funcion COUNT de mysql

primero crea una tabla: con el nombre productos en tu b.d
con los siguintes campo id-articulos-precio-dia

introduce lo siguiente:
articulos|precio|dia
leche ---15 --------1
leche ---- 15-----------2
huevo ----30-----------2
pan -----5-------------1
azucar ---25------------1
azucar ---25-----------1

con estos datos el resultado debe verse

articulo | dia1 | dia2 | dia3
_______________________________________
azucar | 25 | 0 | 25
_____________________________________
lache | 0 | 25 | 0
_________________________________________-
huevo | 15 | 15 | 0
__________________________________________
pan | 5 | 0 | 0
_________________________________________


aqui el archivito php ponle el nombre que gustes

Código PHP:

$link
=mysql_connect("localhost","root");
        
mysql_select_db("tu base",$link);

//empieza el algrupamiento por grupos
$query "SELECT dia,COUNT(dia) FROM productos  GROUP BY dia";  
$result mysql_query($query) or die(mysql_error());

echo
"<table border=1' cellpadding='' cellspacing='0' bordercolor='#000000' align='center'>
<tr>
 <td><div  align='center'class='tablatitulo2'>articulos</div></td>"
;
while (
$row mysql_fetch_array($result))
{        
                
                 echo
"<td>dia:".$row['dia']."</td>";




}
//cierr el incremento de columnas
echo"</tr>";



$q "SELECT dia,articulo,COUNT(articulo) FROM productos  GROUP BY articulo";  
$r mysql_query($q) or die(mysql_error());
while (
$rowk mysql_fetch_array($r))
{
echo
"<tr>";    
echo
" <td><div  align='center'class='tablatitulo2'>".$rowk['articulo']."</div></td>";

//empieza el algrupamiento por grupos
$query "SELECT dia,COUNT(dia) FROM productos  GROUP BY dia";  
$result mysql_query($query) or die(mysql_error());

    while (
$row mysql_fetch_array($result))
    {        
   echo
"<td>";
   
$articulos_precio "SELECT articulo,precio,COUNT(precio) FROM productos where  articulo='".$rowk["articulo"]."' AND dia='".$row["dia"]."'  GROUP BY articulo"
   
$int mysql_query($articulos_precio) or die(mysql_error());

  if (
$row1 mysql_fetch_array($int)) 
   {
    echo
"".$row1["precio"]."";
}else{
$sub1=0;
echo
"<div align='center'  class='filas'>$sub1</div>";}                        
echo
"</td>";
}

echo
"</tr>";

ahora si agreagas un articuclo a con el nuermo 4 del campo dia se agregara una columna a la deracha con el numero de dia
__________________
cuando no esperas nada y obtienes todo eso es destino