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ñ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ñ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.