Hola a tod@s, tengo un problema al filtrar una consulta, no consigo que me filtre lo que quiero, pero primero pongo este trozo de código ya que no se donde esta exactamente el problema y para que podais ayudarme creo que necesitais verlo desde una perspectiva completa. Aquí conecto con la base de datos y pongo las variables.
Código PHP:
<?php
require_once('../../Connections/myConexion.php');
$selactividad = isset($_GET["selactividad"])? $_GET["selactividad"]: '';
$criterio = isset($_GET["criterio"])? $_GET["criterio"]: '';
$txt_criterio=isset($_GET["txt_criterio"])? $_GET["txt_criterio"]: '';
$criterio = "";
if (isset($_GET['criterio'])) {
$txt_criterio = $_GET["criterio"];
$criterio = $txt_criterio;
}
?>
Tengo un select en mi página donde selecciono una actividad, el problema es que al entrar en la página la variable $selactividad tiene un valor NULO o cuando se selecciona "Seleccionar Actividad" en el select su Valor es "-1" en ambos casos quiero que aparezcan todos los clientes, y cuando seleccione una actividad en dicho select quiero que aparezcan solo los clientes cuya actividad coincide con la seleccionada.
Bueno aquí es donde se supone que esta mal el filtro ya que no consigo hacerlo funcionar, tal como esta aquí solo funciona si selecciono una actividad.
Código PHP:
<table width="965" height="80" border="0">
<?php
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM clientes WHERE NombreComer like '%" . $txt_criterio . "%'";
if (isset($_GET['selactividad'])and $_GET['selactividad'] ='') {
$sql .= "AND clientes.Actividades = .$selactividad. ";
}
$sql .= ' ORDER BY NombreComer ASC ';
$sql .= 'LIMIT ' ;
if (!($result = @mysql_query($sql))) {
die(mysql_error());
}
// Recuperar el número total de registros en la tabla
$rows = mysql_fetch_assoc(mysql_query('SELECT FOUND_ROWS() AS rows'));
$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla)) {
?>
<tr>
<td width="195"><a href="<?php echo $registro['Url']; ?>"><?php echo $registro['NombreComer']; ?></a></td>
</tr>
<?php
}
mysql_free_result($tabla);
?>
</table>
Este es el select que relleno desde una tabla, funciona bien ya que al seleccionar una actividad me envia el valor de dicha actividad a la variable $selactividad y si selecciono "Seleccionar Actividad" que es lo que pone por defecto me envia el valor "-1"
Código PHP:
<table width="955" height="30" border="0">
<td>
<form name="fecha" method="GET" action="General.php">
<input name="criterio" type="text" size="20">
<select name="selactividad" id="selactividad">
<option value="-1" selected>Seleccionar Actividad</option>
<?php
$tablaactividad = mysql_query("SELECT * FROM clientes group by Actividades ORDER BY Actividades ASC");
while ($registroactividad = mysql_fetch_array($tablaactividad)) {
?>
<option value="<?php echo $registroactividad['Actividades']; ?>"><?php echo $registroactividad['Actividades']; ?></option>
<?php
}
mysql_free_result($tablaactividad);
?>
</select>
<input type="submit" name="cmdBuscar" id="cmdBuscar" value="BUSCAR">
</div>
</form>
</td>
</table>
Espero haberme esplicado bien para que me podais ayudar, Un saludo.