Como puedo modificar este codigo?

Bueno acontinuacion te pondre un codigo que funciona perfecto. Lo que pasa que quiero modificarlo y nose como. Te 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.

Este es el...

1 respuesta

Respuesta
1
Vaya, es complicado entender todo tu código y no entiendo muy bien lo que quieres hacer, no me puedes dar un acceso para que pueda ver exactamente como funciona tu script y así echarte una mano... entiende que viendo todo el código asii resulta un poco laborioso.
Muchas gracias
http://www.ayzweb.com[url=http://www.ayzweb.com]
Presupuesto Web Gratuito[/url]
si por mi fuera te dejaba acceso, pero estoy de practica es una empresa que es donde estoy ejecutando el scripy y no tng ni idea de la estructura que tienen,asi q me es imposible mostrartelo. Mira te muestro un codigo mas sencillo que estoy elaborando, siemplemente me falta recoger el mes de registro del cliente y dependiendo de que mes sea ponerlo en su columna.
Hasta ahora tngo esto, a ver si asi lo ves un poco mas claro :P
<?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> ";
    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>
<?
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());
    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>
";
    if(mysql_num_rows($result)==0){ echo "
<tr>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
<td>No hay altas en ".$_POST['year']."</td>
</tr>
" ;
    }else{
    while($row=mysql_fetch_array($result)) {
    //ENERO
    echo "
<tr>
<td>Cliente : $row[0]<br>
        Espacio contractado: $row[2] GB <br>
        Tipo de cliente : $row[4]<br>
        Fecha de ingreso : $row[1]<br></td>
";
    //FEBRERO
    echo "
<td>Cliente : $row[0]<br>
        Espacio contractado: $row[2] GB <br>
        Tipo de cliente : $row[4]<br>
        Fecha de ingreso : $row[1]<br>
    </td>
</tr>
";
    }
    }
}
?>
La verdad que ver el codigo asi da dolor de cabeza xD
La verdad, con todo este mogollón, la cosa es que no lo puedo reproducir para echarte una mano, no se los datos que hay ni nada... Intenta escurrir más el código o dime exactamente donde te está fallando, porque por lo que me cuentas, se trata todo de un asunto de paso de parámetros a la página, ¿no?
Con un simple comparador hecho con if{} debes comparar si el mes enviado es el mismo que el que vas a presentar... pero es que ese mismo código lo tienes implementado ya en lo de los meses, ¿no?
A ver si podemos entre los dos, trata de concretar todo lo que puedas.
hola de nuevo y gracias por contestar.
Lon que me falta es justamente lo que has dicho hacer un if{ con la fecha que recogo y compararla para que me lo muestre, el problema es que no se como hacerlo.
He probado de hacerlo con la funcion MONTH(date) de mysql, con SUBSTRING(date) etc.. pero nose como llevarlo a la practica.
Nose recoger el mes del registration_date para poder hacer una comparacion.
Es decir si el registration_date es 2009-01-01, que me recoja '01' y yo poder hacer la comparacion por ejemplo que se que esta mal:
if (MONTH(registration_date)== '01'){
//mostrar todos los datos
}
Pero es eso que nose que poner en lugar de MONTH(registration_date), para poder hacer la comparacion.
A ver si ahora me he explicado un poco mejor :)
Ok, lo que no puedes usar es una función propia de MySQL como si fuera de PHP.
Para eso debes usar la función date:
http://php.net/manual/en/function.date.php
Con esta, podrás extraer el mes facilmente y entonces compararlo. Falta ver cómo están guardados los datos de la fecha en el MySQL, para que esto te acabe de funcionar bien
si la funcion date la conozco,
si yo quiero el mes tendria que poner date("m") cierto??? pero donde pongo eso para que me la recoja del registration_date? eso es lo que nose.
el registration_date lo tengo guardado en mi BD en la tabla client.
client(id_client, client_name, id_distributor, type_of_client, registration_date).
Al final lo he hecho haciendo un blucle, dejo aqui lo que he hecho por si le interesa a alguien.
Y de verdad muchisimas gracias por tu ayuda.
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 "ALTAS:<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  $row[0]." ".$row[1]." ".$row[2]." GB<br>";
                }
        }
OK, de nada, me alegra haberte podido orientar.
Por favor, cierra y valora la respuesta para que otras personas me puedan preguntar tambien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas