Foros del Web » Programando para Internet » PHP »

mostrar cual es el valor mas grande (SOLUCIONADO)

Estas en el tema de mostrar cual es el valor mas grande (SOLUCIONADO) en el foro de PHP en Foros del Web. Hola a todos, bueno primero decir que antes de decidirme a postear estuve mirando post relacionados con este tema, pero no pude solucionarlo, a ver ...
  #1 (permalink)  
Antiguo 01/03/2010, 03:52
 
Fecha de Ingreso: diciembre-2009
Ubicación: entre Ibiza y Barcelona :)
Mensajes: 92
Antigüedad: 14 años, 4 meses
Puntos: 3
mostrar cual es el valor mas grande (SOLUCIONADO)

Hola a todos, bueno primero decir que antes de decidirme a postear estuve mirando post relacionados con este tema, pero no pude solucionarlo, a ver si con vuestra ayuda es posible una solucion.

Pues tengo una tabla <html> donde me muestra por meses los clientes que hay registrados y con la cantidad de GB contractados. Y quiero que al final del todo haya una fila que me muestre el cliente con mayor cantidad de GB contractados de cada mes. Seria un cosa asi:
Cita:
|distrib | Enero | Febrero | Marzo | Abril |......| Diciembre |
-------------------------------------------------
| pepe | 10GB | 0 GB | 0GB | 15GB|.........................
-------------------------------------------------
|maria | 5GB | 10GB |1GB | 1GB|............................
-------------------------------------------------
|Total |pepe| maria | maria | pepe|.......................
Hasta ahora tengo este codigo, pero el resultado final me falla, ya que me muestra el mismo resultado para cada mes.
Código PHP:
<?php 
session_start
(); 
require (
'db_connect.php'); 
require (
'functions.php'); 
connectar_imc(); 
?> 
<form action = "m.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 
"&nbsp;<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 :</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 = '".$rows[0]."'  AND registration_date >= '".$desde."' and registration_date <= '".$hasta."' and demo_account = '0' order by count(client_name)"); 
                
$resultmysql_query($query) or die (mysql_error()); 
                while(
$row=mysql_fetch_array($result)) { 
                        if(
$row[0]==0){ 
                            echo 
"Clientes: 0<br>Espacio:&nbsp; 0GB<br><br>";
                
                        }else{ 
                            echo   
"Clientes:&nbsp;" .$row[0]."<br>"
                            
"Espacio:&nbsp;".$row[2]."&nbsp;GB<br><br>";      
                        } 
                 
                }     
                echo 
"</td>";           
            }
            
            echo 
"</tr>";      
       }   

    echo 
"<tr>";
    
    echo 
"<td>Total</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";

    
$sql=("SELECT contracted_space/1073741824, client_name, d.id_distributor, c.id_distributor, distributor_name FROM `client`c, `distributor`d WHERE d.id_distributor = c.id_distributor ORDER BY contracted_space DESC LIMIT 1");  
    
$result_sqlmysql_query($sql) or die (mysql_error());
    
$max=0;
            while(
$filamysql_fetch_row($result_sql)){      
                 if(
$fila[0] > $max){          
                  
$max $fila[0];
                  
$usuario=$fila[1];
            }
        }     
        echo 
$max;    
          }    
        echo 
"</td>";
        echo 
"</tr>";

?>
A ver si alguien me puede decir en lo que estoy fallando, que es apartir de la ultima consulta.

Un saludo y mil gracias.

Última edición por marinesky; 01/03/2010 a las 05:44
  #2 (permalink)  
Antiguo 01/03/2010, 05:02
 
Fecha de Ingreso: diciembre-2009
Ubicación: entre Ibiza y Barcelona :)
Mensajes: 92
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: mostrar cual es el valor mas grande

ok ya he conseguido que me muestre el mas grande.. pero en algunos meses no hay registro y aun asi me muestra datos, como puedo hacer para que si no hay datos me muestre "no hay registro".
Código PHP:

    
echo "<tr>";
    
    echo 
"<td>Total</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";

    
$sql=("SELECT contracted_space/1073741824, client_name, d.id_distributor, c.id_distributor, distributor_name FROM `client`c, `distributor`d WHERE c.registration_date >= '".$desde."' and c.registration_date <= '".$hasta."' ORDER BY contracted_space DESC LIMIT 1");  
    
$result_sqlmysql_query($sql) or die (mysql_error());
    
$max=0;
    
            while(
$filamysql_fetch_row($result_sql)){    
            echo 
"<td>";  
                 if(
$fila[0] > $max){          
                  
$max $fila[0];
            
$usuario$fila[1];
                  
            }
        }     
        echo 
$usuario;            
          }    
        echo 
"</td>";
        echo 
"</tr>";

?> 
  #3 (permalink)  
Antiguo 01/03/2010, 05:05
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: mostrar cual es el valor mas grande

Para qué tienes el LIMIT 1 ???
Si te muestra datos incluso sin haberlos algo hay mal...
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 01/03/2010, 05:43
 
Fecha de Ingreso: diciembre-2009
Ubicación: entre Ibiza y Barcelona :)
Mensajes: 92
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: mostrar cual es el valor mas grande

jaja no me preguntes para que lo tengo..porque no tengo ni idea, a mi me dijeron que lo pusiera y yo lo puse xD

es igual ya lo he conseguido hacer.

dejo el codigo por si a alguien le interesa.
Código PHP:
<?php 
session_start
(); 
require (
'db_connect.php'); 
require (
'functions.php'); 
connectar_imc(); 
?> 
<form action = "recuento_clientes.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 
"&nbsp;<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)); 
        
    
$max[]=0;
    
$max_dist[]=0;

        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 :</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 = '".$rows[0]."'  AND registration_date >= '".$desde."' and registration_date <= '".$hasta."' and demo_account = '0' order by count(client_name)"); 
                
$resultmysql_query($query) or die (mysql_error()); 
                while(
$row=mysql_fetch_array($result)) { 
                        if(
$row[0]==0){ 
                            echo 
"Clientes: 0<br>Espacio:&nbsp; 0GB<br><br>";
                
                        }else{ 
                            echo   
"Clientes:&nbsp;" .$row[0]."<br>"
                            
"Espacio:&nbsp;".$row[2]."&nbsp;GB<br><br>";      
                        } 
            
            if(
$row[2]>$max[$i]) {
                
$max[$i]=$row[2];
                
$max_dist[$i]=$row[3];
            }
            
                 
                }     
                echo 
"</td>";           
            }
            
            echo 
"</tr>";      
       }   

    echo 
"<tr>";
    
    echo 
"<td>Total</td>";

    for(
$i=1;$i<=12;$i++) { 
                 echo 
"<td>".$max_dist[$i]."</td>";
          }    
        echo 
"</td>";
        echo 
"</tr>";

?>
  #5 (permalink)  
Antiguo 01/03/2010, 05:49
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: mostrar cual es el valor mas grande (SOLUCIONADO)

Con limit limitas los registros elegidos.
Es decir:
Cita:
LIMIT 0,1
Sólo sale un registro a partir de la posición 0
Cita:
LIMIT 30,150
Salen 150 registros a partir de la posición 30

Un saludo!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: grande, mas, solucionado
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 11:16.