Lo primero es que no tienes bien echa la tabla, es decir... Tu lo que ahora haces es imprimir primero un listado de distribuidores separados por lineas, lo que deberías hacer es separarlos en diferentes celdas y de igual forma los demas datos por que si no luego no te va a cuadrar nada.
Así pues la consulta
Código PHP:
$query_dis=("SELECT id_distributor, distributor_name FROM distributor WHERE deleted_distributor = '0' order by distributor_name");
$result_dis=(mysql_query($query_dis));
Deberás hacerla una vez por cada distribuidor, así que deberás meterla en el bucle que muestra los distribuidores.
Vamos al lío
Código PHP:
<?php
session_start();
require ('db_connect.php');
require ('functions.php');
connectar_imc();
?>
<form action = "m5.php" method = "post">
<?php
echo "<select name=\"year\" id=\"year\">";
for($i=date(Y);$i>=2005;$i--) {
echo "<option value=\"".$i."\"";
if($_POST['year']==$i) echo " selected";
echo ">".$i."</option>";
}
echo "</select>";
echo " <input id=\"button\" name=\"enviar\" class=\"boton\" type=\"submit\" value=\"Ver\" ";
?>
</form>
<?php
if( $_POST ){
echo "<table border='1'>";
echo "<tr><td><b>Distribuidores</b></td><td><b>Enero</b></td><td><b>Febrero</b></td><td><b>Marzo</b></td><td><b>Abril</b></td><td><b>Mayo</b></td><td><b>Junio</b></td><td><b>Julio</b></td><td><b>Agosto</b></td><td><b>Septiembre</b></td><td><b>Octubre</b></td><td><b>Noviembre</b></td><td><b>Diciembre</b></td></tr>";
$query_dis=("SELECT id_distributor, distributor_name FROM distributor WHERE deleted_distributor = '0' order by distributor_name");
$result_dis=(mysql_query($query_dis));
while ($rows = mysql_fetch_row($result_dis)){
echo "<tr>";
echo "<td>";
echo "<b>$rows[1]</b><br><br>";
echo "</td>";
for($i=1;$i<=12;$i++) {
if($i<10) $mes="0".$i;
else $mes = $i;
$desde = $_POST['year']."-".$mes."-01";
$hasta = $_POST['year']."-".$mes."-31";
echo "<td>";
echo "<b>ALTAS NO DEMO:</b><br>";
$query=("SELECT COUNT(client_name), registration_date, SUM(contracted_space/1073741824),id_distributor, id_pay_method, type_of_client, id_client FROM client WHERE id_distributor = '".$_POST['distributor']."' AND registration_date >= '".$desde."' and registration_date <= '".$hasta."' and demo_account = '0' order by count(client_name)");
$result= mysql_query($query) or die (mysql_error());
while($row=mysql_fetch_array($result)) {
if($row[0]==0){
echo "No hay altas en ".$mes."-".$_POST['year']."<br><br>";
}else{
echo "Clientes: " .$row[0]."<br>".
"Espacio: ".$row[2]." GB<br><br>";
}
}
echo "</td>";
}
echo "</tr>";
}
}
?>
Así, sin posibilidad de probarlo ni nada es algo complicado hacerlo bien a la primera, pero para que lo entiendas básicamente lo que hace es hacer la consulta cada vez que se muestra un distribuidor, para ello he metido tu consulta, con el bucle que muestra los distintos meses dentro del bucle que muestra la lista de distribuidores