Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/10/2013, 04:32
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta sql segun criterios

Cita:
...no entiendo mucho los condicionales ternarios...
No son condicionales ternarios. Es un condicional binario que tiene anidado otro condicional binario.

Te falta "session_start();" en el fichero de la consulta.

La linea, que por lo que dices no entiendes:

$Sql.=$filtro;

esto es equivalente a

$Sql=$Sql.$filtro;

Es donde se juntan la parte fija de la query con el filtro, si este es "" no se le junta nada si hay algo se junta...

El echo $Sql entiendes que debes eliminarlo cuando todo te funcione?

lo que imprime ese echo debe ser una query con sintaxis correcta que incluya la parte fija inicial y el filtro que se haya construido, has copiado todo menos eso con lo que no puedo ver donde esta el error....

Yo usaba $filtro porque te daba una solución general, si cualquier campo podia ser nulo luego no podias poner WHERE en la parte fija.
Al tener el primer campo como fijo luego se simplifica.


Código PHP:
Ver original
  1. if(!empty($localidad))
  2. {
  3. $Sql.="AND localidad='$localidad '"; //Aqui sobra un blanco despues del nombre de la variable y falta uno despues del delimitador (') o antes de AND
  4. }
  5. if(!empty($nacimiento))
  6. {
  7. $Sql.="AND nacimiento>='$nacimiento '";///Idem
  8. }
  9. if($sexo=='Indiferente')
  10. {
  11. //Ojo a este condicional $sexo!='Indiferente', no?
  12. $Sql.="AND sexo='$sexo '";//Idem
  13. }
  14. //Ojo $estudios="nada" que significa que se requiere jente con "nada" de estudios o que no se requiere ningun nivel de estudios?
  15. $Sql.="AND estudios='$estudios'";//Idem
  16.  
  17. if(!empty($yearlastjob))
  18. {
  19. $Sql.="AND yearlastjob>='$yearlastjob '";//Idem
  20. }
  21.  
  22.  
  23. echo $Sql."<br />";//Solo sirve de control para ver que se ha construido.

La sentencia que imprima ese echo debe tener los blancos donde toca

SELECT..... FROM curriculums FROM curriculums WHERE provincia='Barcelona' AND localidad='Sabadell 'AND nacimiento>='1963-11-28 'AND sexo='Hombre 'AND....

SELECT.....FROM curriculums FROM curriculums WHERE provincia='Barcelona' AND localidad='Sabadell' AND nacimiento>='1963-11-28' AND sexo='Hombre' AND....


Código PHP:
Ver original
  1. while($dato=mysql_fetch_array($consulta))
  2.         {
  3.             echo '<td>'.$dato['nombre'].'</td>';
  4.             echo '<td>'.$dato['apellidos'].'</td>';
  5.             echo '<td>'.$dato['provincia'].'</td>';
  6.             echo '<td>'.$dato['localidad'].'</td>';
  7.             echo '<td>'.$dato['direccion'].'</td>';
  8.             echo '<td>'.$dato['email'].'</td>';
  9.             echo '<td>'.$dato['telefono'].'</td>';
  10.             echo '<td>'.$dato['nacimiento'].'</td>';
  11.             echo '<td>'.$dato['sexo'].'</td>';
  12.             echo '<td>'.$dato['estudios'].'</td>';
  13.             echo '<td>'.$dato['monthlastjob'].'</td>';
  14.             echo '<td>'.$dato['yearlastjob'].'</td>';
  15.             echo '<td>'.$dato['favorito'].'</td>';
  16.         }
  17.  
  18.         echo '</tr></table>';//Donde inicias la table i las tr?
  19. ?>

Venga que ya lo tienes.... he intentado ayudarte en lo que preguntas y corregirte algun otro error que he visto... ese es el objetivo del foro. No hacerte el trabajo... ni corregirlo como si fuera un profesor o un empleador o un crítico ....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 24/10/2013 a las 04:48