Foros del Web » Programando para Internet » PHP »

modificacion de codigo

Estas en el tema de modificacion de codigo en el foro de PHP en Foros del Web. Hola a todos, bueno acontinuacion os pondre un codigo que funciona perfecto. Lo que pasa que quiero modificarlo y nose como. Os explico lo que ...
  #1 (permalink)  
Antiguo 11/02/2010, 02:17
 
Fecha de Ingreso: diciembre-2009
Ubicación: entre Ibiza y Barcelona :)
Mensajes: 92
Antigüedad: 10 años
Puntos: 3
modificacion de codigo(SOLUCIONADO)

Hola a todos, bueno acontinuacion os pondre un codigo que funciona perfecto. Lo que pasa que quiero modificarlo y nose como. Os explico lo que tengo y lo que quiero conseguir hacer.
Pues bueno tengo 3 <selects> :
- El primero me muestra unos distribuidores que se introducen atraves de la base de datos.
- El otro es de los meses
- Y el ultimo es de los años.

Esto hace que si elijo un distribuidor, un mes y un año, me muestra por pantalla varias tablas, segun el alta, baja, y modificaciones. OK? Hasta ahi es lo que tengo y va perfecto.

Código PHP:
<?php
echo "<dl><dt>";
    echo 
"<select name=\"distributor\" id=\"distributor\">";
    echo 
"<option value=\"0\">Seleccione un distribuidor</option>";
    
$query=mysql_query("SELECT id_distributor, distributor_name FROM distributor WHERE deleted_distributor = '0' order by distributor_name");
    while(
$row=mysql_fetch_row($query)){
        echo 
"<option value= $row[0] ";
        if(
$_POST['distributor']==$row[0]) echo "selected";
        echo 
">$row[1]</option>";
    }
    echo 
"</select>&nbsp;&nbsp;";

    echo 
"<select name=\"select_month\" id=\"select_month\">";
        echo 
"<option value=\"01\"";
        if(
$_POST['select_month']=="01") echo " selected";
        echo 
">Enero</option><option value=\"02\"";
        if(
$_POST['select_month']=="02") echo " selected";
        echo 
">Febrero</option><option value=\"03\"";
        if(
$_POST['select_month']=="03") echo " selected";
        echo 
">Marzo</option><option value=\"04\"";
        if(
$_POST['select_month']=="04") echo " selected";
        echo 
">Abril</option><option value=\"05\"";
        if(
$_POST['select_month']=="05") echo " selected";
        echo 
">Mayo</option><option value=\"06\"";
        if(
$_POST['select_month']=="06") echo " selected";
        echo 
">Junio</option><option value=\"07\"";
        if(
$_POST['select_month']=="07") echo " selected";
        echo 
">Julio</option><option value=\"08\"";
        if(
$_POST['select_month']=="08") echo " selected";
        echo 
">Agosto</option><option value=\"09\"";
        if(
$_POST['select_month']=="09") echo " selected";
        echo 
">Septiembre</option><option value=\"10\"";
        if(
$_POST['select_month']=="10") echo " selected";
        echo 
">Octubre</option><option value=\"11\"";
        if(
$_POST['select_month']=="11") echo " selected";
        echo 
">Noviembre</option><option value=\"12\"";
        if(
$_POST['select_month']=="12") echo " selected";
        echo 
">Diciembre</option>";
    echo 
"</select>&nbsp;&nbsp;";
    echo 
"<select name=\"select_year\" id=\"select_year\">";
    for(
$i=date(Y);$i>=2005;$i--) {
        echo 
"<option value=\"".$i."\"";
        if(
$_POST['select_year']==$i) echo " selected";
        echo 
">".$i."</option>";
    }
    echo 
"</select>";
    echo 
"<br><br><input id=\"button\" name=\"enviar\" class=\"boton\" type=\"submit\" value=\"Enviar\"></dt>";
    echo 
"</dl><br>";
    

    if(isset(
$_POST['enviar'])) {
        
$data_ini=$_POST['select_year']."-".$_POST['select_month']."-01";
        
$data_fin=$_POST['select_year']."-".$_POST['select_month']."-31";
        
$query=mysql_query("SELECT client_name, registration_date, contracted_space/1073741824, id_pay_method, type_of_client, id_client from client where id_distributor = '".$_POST['distributor']."' and registration_date >= '".$data_ini."' and registration_date <= '".$data_fin."' and demo_account = '0' order by registration_date");
        echo 
"<font color=\"black\" style=\"text-decoration:underline;\"><b>ALTAS</b></font><br>";
        echo 
"<center><table align=\"center\"><tr><td><b>Nombre del cliente</b></td><td>&nbsp;</td><td><b>Fecha de alta</b></td><td>&nbsp;</td><td><b>Capacidad contratada</b></td><td>&nbsp;</td><td><b>Tipo de contrato</b></td></tr>";
        if(
mysql_num_rows($query)==0) echo "<tr><td colspan=\"5\" align=\"center\">No hay altas en ".$_POST['select_month']."-".$_POST['select_year']."</td></tr>";
        while(
$row=mysql_fetch_row($query)) {            
            
$query_control=mysql_query("SELECT previous_quote FROM client WHERE id_client = '".$row[5]."' and last_quote_updated >= '".date('Y-m')."-01' and last_quote_updated<= '".date('Y-m-d')."'");
            if(
mysql_num_rows($query_control)>0) {
                
$row_control mysql_fetch_row($query_control);
                
$space $row_control[0]/1073741824;
            } else 
$space $row[2];
            if(
$row[3]==1$tipo "Mensual";
            if(
$row[3]==2$tipo "Anual";
            if(
$row[4]=="pro"$pro "(PRO)";
            else 
$pro "";
            echo 
"<tr><td>".$row[0]."&nbsp;".$pro."</td><td>&nbsp;</td><td>".$row[1]."</td><td>&nbsp;</td><td>".$space."&nbsp;GB</td><td>&nbsp;</td><td>".$tipo."</td></tr>";
        }
        echo 
"</table>";
        echo 
"<br>";
        
$query=mysql_query("SELECT client_name, last_quote_updated, contracted_space/1073741824, previous_quote/1073741824, id_pay_method, registration_date, annual_client_date, type_of_client from client where id_distributor = '".$_POST['distributor']."' and last_quote_updated >= '".$data_ini."' and last_quote_updated <= '".$data_fin."' and demo_account = '0' and deleted_client = '0'");
        echo 
"<font color=\"black\" style=\"text-decoration:underline;\"><b>MODIFICACIONES</b></font><br>";
        echo 
"<center><table align=\"center\"><tr><td><b>Nombre del cliente</b></td><td>&nbsp;</td><td><b>Fecha de alta</b></td><td>&nbsp;</td><td><b>Fecha de modificaci&oacute;n</b></td><td>&nbsp;</td><td><b>Nueva capacidad contratada</b></td><td>&nbsp;</td><td><b>Capacidad anterior</b></td><td>&nbsp;</td><td><b>Tipo de contrato</b></td></tr>";
        if(
mysql_num_rows($query)==0) echo "<tr><td colspan=\"7\" align=\"center\">No hay modificaciones en ".$_POST['select_month']."-".$_POST['select_year']."</td></tr>";
        while(
$row=mysql_fetch_row($query)) {
            if(
$row[4]==1$tipo "Mensual";
            if(
$row[4]==2$tipo "Anual";
            if(
$tipo=="Anual") {
                if(
$row[6]!="0000-00-00"$data=$row[6];
                else 
$data=$row[5];
            } else 
$data=$row[5];
            if(
$row[7]=="pro"$pro "(PRO)";
            else 
$pro "";
            echo 
"<tr><td>".$row[0]."&nbsp;".$pro."</td><td>&nbsp;</td><td>".$data."</td><td>&nbsp;</td><td>".$row[1]."</td><td>&nbsp;</td><td>".$row[2]."&nbsp;GB</td><td>&nbsp;</td><td>".$row[3]."&nbsp;GB</td><td>&nbsp;</td><td>".$tipo."</td></tr>";
        }
        echo 
"</table>";
        echo 
"<br>";
        
$query=mysql_query("SELECT client_name, contracted_space/1073741824, id_pay_method, annual_client_date, type_of_client from client where id_distributor = '".$_POST['distributor']."' and annual_client_date >= '".$data_ini."' and annual_client_date <= '".$data_fin."' and demo_account = '0' and deleted_client = '0'");
        echo 
"<font color=\"black\" style=\"text-decoration:underline;\"><b>MODIFICACIONES TIPO DE CONTRATO</b></font><br>";
        echo 
"<center><table align=\"center\"><tr><td><b>Nombre del cliente</b></td><td>&nbsp;</td><td><b>Espacio contratado</b></td><td>&nbsp;</td><td><b>Tipo de contrato</b></td><td>&nbsp;</td><td><b>Fecha cambio a anual</b></td></tr>";
        if(
mysql_num_rows($query)==0) echo "<tr><td colspan=\"7\" align=\"center\">No hay modificaciones en ".$_POST['select_month']."-".$_POST['select_year']."</td></tr>";
        while(
$row=mysql_fetch_row($query)) {
            if(
$row[2]==1$tipo "Mensual";
            if(
$row[2]==2$tipo "Anual";
            if(
$row[4]=="pro"$pro "(PRO)";
            else 
$pro "";
            echo 
"<tr><td>".$row[0]."&nbsp;".$pro."</td><td>&nbsp;</td><td>".$row[1]."</td><td>&nbsp;</td><td>".$tipo."&nbsp;</td><td>&nbsp;</td><td>".$row[3]."&nbsp;</td></tr>";
        }
        echo 
"</table>";
        echo 
"<br>";
        
$query=mysql_query("SELECT client_name, unregistration_date, contracted_space/1073741824, type_of_client from client where id_distributor = '".$_POST['distributor']."' and unregistration_date >= '".$data_ini."' and unregistration_date <= '".$data_fin."' and demo_account = '0' and deleted_client = '1'");
        echo 
"<font color=\"black\" style=\"text-decoration:underline;\"><b>BAJAS</b></font><br>";
        echo 
"<center><table align=\"center\"><tr><td><b>Nombre del cliente</b></td><td>&nbsp;</td><td><b>Fecha de baja</b></td><td>&nbsp;</td><td><b>Capacidad contratada</b></td></tr>";
        if(
mysql_num_rows($query)==0) echo "<tr><td colspan=\"5\" align=\"center\">No hay bajas en ".$_POST['select_month']."-".$_POST['select_year']."</td></tr>";
        while(
$row=mysql_fetch_row($query)) {
            if(
$row[3]=="pro"$pro "(PRO)";
            else 
$pro "";
            echo 
"<tr><td>".$row[0]."&nbsp;".$pro."</td><td>&nbsp;</td><td>".$row[1]."</td><td>&nbsp;</td><td>".$row[2]."&nbsp;GB</td></tr>";
        }
        echo 
"</table>";

    }
?>
Y atraves de este codigo a ver si me podeis ayudar a hacer algo parecido.
Quiero que solo este el <select> de distribuidores y del año.
Y que al elegir un distribuidor y un año, muestre una tabla con todos los meses y dentro de cada mes la consulta para saber la informacion de bajas, altas, etc..


A ver si alguein es tan amable y puede ayudarme a verlo mas claro o lo que sea, cualquier ayuda sera bien recibida.

P.D = perdon por el toston!! :P

Última edición por marinesky; 17/02/2010 a las 05:32 Razón: solucionado
  #2 (permalink)  
Antiguo 11/02/2010, 02:27
 
Fecha de Ingreso: enero-2008
Ubicación: /España/Galicia
Mensajes: 928
Antigüedad: 11 años, 11 meses
Puntos: 21
Respuesta: modificacion de codigo

pon como tienes la db
  #3 (permalink)  
Antiguo 11/02/2010, 02:49
 
Fecha de Ingreso: diciembre-2009
Ubicación: entre Ibiza y Barcelona :)
Mensajes: 92
Antigüedad: 10 años
Puntos: 3
tengo dos tablas:

distributor (id_distributor, distributor_name, delete_distributor)

y la tabla

clientes (id_distributor, id_cliente, client_name, registration_date, contrated_space, type_of_client)


para mostralo en la tabla tengo una ligera idea de como hacerlo, lo que no consigo clararme es como defino el mes, si no tengo ningun select ni nada que lo elija.

un saludo

He estado investigando y e conseguido mostrarlo en la tabla, haciendo la consulta de una en una, pero sigo sin saber como hacer que me reconozca el mes del registro y mostrarmelo en la columna del respectivo mes.Dejo lo que tengo hasta ahora echo a ver si alguien me puede ayudar, que esta casi, solo que necesito que alguien me haga ver como se hace.

Un saludo y mil gracias.

Código PHP:
<?php
session_start
();
require (
'db_connect.php');
require (
'functions.php');
connectar_imc();
?>
<form action = "meses.php" method = "post">
<?php
    
echo "<select name=\"distributor\" id=\"distributor\">";
    echo 
"<option value=\"0\">Seleccione un distribuidor</option>";
    
$query=mysql_query("SELECT id_distributor, distributor_name FROM distributor WHERE deleted_distributor = '0' order by distributor_name");
    while(
$row=mysql_fetch_row($query)){
        echo 
"<option value= $row[0] ";
        if(
$_POST['distributor']==$row[0]) echo "selected";
        echo 
">$row[1]</option>";
    }
    echo 
"</select>&nbsp;";

    
    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>
<? 
if( $_POST ){
    
$desde $_POST['year']."-01-01";
    
$hasta $_POST['year']."-12-31"
    
$query=("SELECT client_name, registration_date, contracted_space/1073741824, 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 registration_date");
    
$result mysql_query($query) or die (mysql_error());
        
    if(
mysql_num_rows($result)==0){ echo "<tr><td>No hay altas en ".$_POST['year']." </td></tr>";
    }else{
    echo 
"<table border='1'>";
    echo 
"<tr><td><b>Enero</b></td><td><b>Febrero</b></td></tr>";
    while(
$row=mysql_fetch_array($result)) {
    
#enero
    
echo "<tr><td>$row[client_name]</td>";
    
#febrero
    
echo "<td>$row[client_name]</td></tr>"
    }
    }
        

}
?>
como puedo introducir estos datos en mi codigo??
se que si empiezo a toquetear al final me kedare sin el codigo y tendre que volver a empezar, a ver si alguien es tan amable de ayudar a una novatilla.

Código PHP:
$sql = "select *, SUBSTRING(registration_date,0) as mes from client 
        where id_distributor='".$_POST['distributor']."' AND registration_date >='".$desde."' AND registration_date <='".$hasta."' order by registration_date ";
    
    $res = mysql_query( $sql ) or die ( mysql_error() );
        
    ?>
    <table border="1">
    <?
    $meses
=array('01'=>'Ene','02'=>'Feb','03'=>'Mar','04'=>'Abr','05'=>'May','06'=>'Jun',
            
'07'=>'Jul','08'=>'Ago','09'=>'Sep','10'=>'Oct','01'=>'Nov','01'=>'Dic');
    while ( 
$fila mysql_fetch_array($res) ){
        
# si esta el mes en el array
        
if( in_array$fila['mes'], $meses ) ){
            
# imprimo el texto del mes que esta en el array meses[mes]
            
?> <tr><th><?=$meses[$fila['mes']]?></th></tr> <?
            
# quito el mes del array para que no se vuelva a imprimir
            
unset($meses[$fila['mes']]);
        }

        
?><tr><td>
        Nombre de Cliente : <?=$fila['client_name']?><br>
        Fecha de Registro : <?=$fila['registration_date']?><br>
        Tipo de Cliente : <?=$fila['type_of_client']?><br>
        </td></tr><?    
    
}
    
?>    
    </table><?
}
?>
Quiero que me recoja el mes del registration_date en el ejemplo, pero que me lo muestre con en el caso de arriba, cada uno en su mes.

Un saludo y mil gracias

mediante un SUBSTRING de registration_date podria hacer que me registrara el mes n? pero luego como le puedo decir que mire ese registro y lo compare con el mes de la tabla?!

Bueno por fin despues de mucho pensar y pensar, por fin lo he resuelto.
Dejo aqui el codigo por si a alguien le sirve de ayuda.

Código PHP:
<?php
session_start
();
require (
'db_connect.php');
require (
'functions.php');
connectar_imc();
?>
<form action = "m3.php" method = "post">
<?php
    
echo "<select name=\"distributor\" id=\"distributor\">";
    echo 
"<option value=\"0\">Seleccione un distribuidor</option>";
    
$query=mysql_query("SELECT id_distributor, distributor_name FROM distributor WHERE deleted_distributor = '0' order by distributor_name");
    while(
$row=mysql_fetch_row($query)){
        echo 
"<option value= $row[0] ";
        if(
$_POST['distributor']==$row[0]) echo "selected";
        echo 
">$row[1]</option>";
    }
    echo 
"</select>&nbsp;";
    
    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>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>
"
;
echo 
"<tr>";
    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 client_name, registration_date, contracted_space/1073741824, 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 registration_date");
        
$result mysql_query($query) or die (mysql_error());
        if(
mysql_num_rows($result)==0) echo "No hay altas en ".$mes."-".$_POST['year']."<br>";
        else {
             while(
$row=mysql_fetch_array($result)) {
                    echo   
"Cliente:&nbsp;" .$row[0]."<br>".
                    
"Fecha alta:&nbsp;" .$row[1]."<br>".
                    
"Espacio:&nbsp;".$row[2]."&nbsp;GB<br>".
                    
"Tipo cliente:&nbsp;" .$row[4]. "<br><br>";
                
                }

        }
        echo 
"<hr>";        
        echo 
"<br><b>BAJAS:</b><br>";
        
$query_control=("SELECT client_name, unregistration_date, contracted_space/1073741824, type_of_client from client where id_distributor = '".$_POST['distributor']."' and unregistration_date >= '".$desde."' and unregistration_date <= '".$hasta."' and demo_account = '0' and deleted_client = '1'");
        
$result_control mysql_query$query_control ) or die ( mysql_error());
        if(
mysql_num_rows($result_control)==0) echo "No hay bajas en ".$mes."-".$_POST['year']."<br>";
        else {
             while(
$row=mysql_fetch_array($result_control)) {
                echo   
"Cliente:&nbsp;" .$row[0]."<br>".
                    
"Fecha baja:&nbsp;".$row[1]."<br>".
                    
"Espacio:&nbsp;".$row[2]."&nbsp;GB<br>".
                    
"Tipo cliente:&nbsp;" .$row[3]. "<br><br>";
                
            }
        }
        echo 
"<hr>";
        echo 
"<br><b>MODIFICACIONES:</b><br>";
       
$query_mod=("SELECT client_name, last_quote_updated, contracted_space/1073741824, previous_quote/1073741824, id_pay_method, registration_date, annual_client_date, type_of_client from client where id_distributor = '".$_POST['distributor']."' and last_quote_updated >= '".$desde."' and last_quote_updated <= '".$hasta."' and demo_account = '0' and deleted_client = '0'");
       
$result_mod mysql_query($query_mod) or die (mysql_error());
        if(
mysql_num_rows($result_mod)==0) echo "No hay modificaciones en ".$mes."-".$_POST['year']."<br>";
        else{
            while (
$row=mysql_fetch_array($result_mod)){
                echo   
"Cliente:&nbsp;" .$row[0]."<br>".
                    
"Cuota anterior:&nbsp;".$row[2]."&nbsp;GB<br>".
                    
"Cuota nueva:&nbsp;" .$row[3]."&nbsp;GB<br><br>";
            }
        }        
        echo 
"</td>";
        
    }
echo 
"</tr>";
       
}
?>

Última edición por GatorV; 17/02/2010 a las 10:17

Etiquetas: modificacion
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 21:44.