Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2012, 05:20
ra120354
 
Fecha de Ingreso: febrero-2012
Ubicación: N/A
Mensajes: 54
Antigüedad: 12 años, 2 meses
Puntos: 0
Como filtrar esta consulta

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.