Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2013, 19:11
bendark23
 
Fecha de Ingreso: julio-2005
Mensajes: 73
Antigüedad: 19 años, 8 meses
Puntos: 0
Pregunta Problemas con esta consulta

Estoy intentando armar una consulta a través de unos datos que se introducen o seleccionan a través de un select, este deria el codigo

primero esta seria mi consulta para cuando no hay datos sin filtrar

Código PHP:
$sql_query='SELECT DISTINCT(promedio),id_granja FROM servicios'

aqui viene el primer dato de mi select y de acuerdo a lo recibido genero el primer filtro de mi consulta

Código PHP:
if(!isset($_POST['year'])){
     
$year '2013'// si no recibo nada, asigno el año actual
     
$sql_query .= ' WHERE YEAR(servicios.semana)=' $year;
   }  
else {
    
$year $_POST['year']; // si existe asigno el año para realizar el filtro.
    
$sql_query .= ' WHERE YEAR(servicios.semana)=' $year;        
    } 

aqui mi segundo valor recibido por el segundo select

Código PHP:
if(!isset($_POST['month']))
     
$month '0';
else{ 
    
$month $_POST['month'];
    
$sql_query .= ' AND MONTH(servicios.semana)=' . $$month;
  } 
una vez realizado esto genero mi consulta a la BD

Código PHP:
 $result $mysqli->query($sql_query)or die(mysql_error()); 
el problema es que siempre me da, por ejemplo si selecciono el año... el mes me indica 0, si selecciono el año, el mes se me pone a 0

y nunca me arroja nada la consulta

el forma quedaría asi.
Código:
<div id="filtros">
  <form name='filtros' method="post" action="servicios.php">
    <label>Mes :</label>
    <select name="month" size="1">
       <option value="0">- Sin Filtrar -</option> 
	   <option value="1">Enero</option>
	   <option value="2">Febrero</option>
	   <option value="3">Marzo</option>
	   <option value="4">Abril</option>
	   <option value="5">Mayo</option>
	   <option value="6">Junio</option>
	   <option value="7">Julio</option>
	   <option value="8">Agosto</option>
	   <option value="9">Septiembre</option>
	   <option value="10">Octubre</option>
	   <option value="11">Noviembre</option>
	   <option value="12">Diciembre</option>
    </select>
    <label>A&ntilde;o</label>
    <select name="year" size="1">
	   <option value="2013">2013</option>
	   <option value="2012">2012</option>
	   <option value="2011">2011</option>
	   <option value="2010">2010</option>
	</select>
    <input type="submit" name="Enviar" value="Actualizar" />
</form>
El archivo servicios.php es el mismo se los pongo para que vean como lo tengo

Código PHP:
<?php
//datos de conexion
//Primero leemos los datos enviados
//por el formulario

$sql_query='SELECT DISTINCT(promedio),id_granja FROM servicios';

if(!isset(
$_POST['year'])){
     
$year '2013';
     
$sql_query .= ' WHERE YEAR(servicios.semana)=' $year;
   }  
else {
    
$year $_POST['year'];
    
$sql_query .= ' WHERE YEAR(servicios.semana)=' $year;        
    }
 


if(!isset(
$_POST['month']))
     
$month '0';
else{ 
    
$month $_POST['month'];
    
$sql_query .= ' AND MONTH(servicios.semana)=' . $$month;
  }  

//echo $year.'<br>'.$month.'<br>'.$sql_query.'<br>';




  /* conexion a la BD */
  
$mysqli = new mysqli($DB_HOST$DB_USER$DB_PASS$DB_NAME);

  if (
mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
  }

   
   
$result $mysqli->query($sql_query)or die(mysql_error());

    
//procedimiento para los datos de mi consulta...
   
?>
<html>
  <head>
    //cabecera js, etc
  </head>

  <body>
  <div id="filtros">
  <form name='filtros' method="post" action="servicios.php">
    <label>Mes :</label>
    <select name="month" size="1">
       <option value="0">- Sin Filtrar -</option> 
       <option value="1">Enero</option>
       <option value="2">Febrero</option>
       <option value="3">Marzo</option>
       <option value="4">Abril</option>
       <option value="5">Mayo</option>
       <option value="6">Junio</option>
       <option value="7">Julio</option>
       <option value="8">Agosto</option>
       <option value="9">Septiembre</option>
       <option value="10">Octubre</option>
       <option value="11">Noviembre</option>
       <option value="12">Diciembre</option>
    </select>
    <label>A&ntilde;o</label>
    <select name="year" size="1">
       <option value="2013">2013</option>
       <option value="2012">2012</option>
       <option value="2011">2011</option>
       <option value="2010">2010</option>
    </select>
    <input type="submit" name="Enviar" value="Actualizar" />
</form>

    
    
    
  </div>
<div>
//muestro de forma ordenada mi consulta, ya sea en una tabla etc...
  </div>
    
  </body>
</html>
el problema que mi consulta no me genera ningun dato... si alguien me puede ayudar de antemano muchas gracias.