Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta sql php

Estas en el tema de Consulta sql php en el foro de Mysql en Foros del Web. Hola soy un poco novato en esto y tengo la siguiente duda. Estoy haciendo un web con XAMMP y tengo un bases de datos con ...
  #1 (permalink)  
Antiguo 01/12/2010, 12:30
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Consulta sql php

Hola soy un poco novato en esto y tengo la siguiente duda.
Estoy haciendo un web con XAMMP y tengo un bases de datos con phpmyadmin con varias tablas (usuarios-paises-etc...)
Tengo un formulario de busqueda donde hay varios campos de busqueda
-Sexo (radio buton)
-Edades (desplegable)
-Ciudad (texto)
-Aficiones (checkbox)
-Pais ( coge el valor automatico de la tabla paises para elejir uno)

Quiero que se pueda introducir todos o ningun criterio (menos el de pais que lo ponen a la fuerza claro..)
Entonces como hago por ejemplo...si esta el sexo masculino busca los usuarios masculinos
y
si tambien ha introducido ciudad que la consulta sea otra (...AND ciudad LIKE '%campociudad'...)
o si por ejemplo solo esta el pais, pues la consulta solo es con el pais.



No se si me he explicado bien, pero gracias de todos modos por el trabajo que haceis en esta página.
Un saludo
  #2 (permalink)  
Antiguo 02/12/2010, 03:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta sql php

Si, php te tiene que construir la sentencia en funcion de si hay o no valor en el campo.

Si puedes evitar usar el LIKE mejor, será más rapido.

Quim
  #3 (permalink)  
Antiguo 02/12/2010, 11:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Consulta sql php

Cita:
Iniciado por quimfv Ver Mensaje
Si, php te tiene que construir la sentencia en funcion de si hay o no valor en el campo.

Si puedes evitar usar el LIKE mejor, será más rapido.

Quim
=================================================
Lo que no se hacer es lo que pongo al lado de los asteriscos, haber si me podeis hechar una mano


Mi código es asi
===============================================
(Formulario)
<form action="listadoBusqueda.php" method="get" id="buscar">
Criterio de busqueda:
<label for="text">Sexo: </label>
<input type="radio" name="sexo" value="masculino" /> Masculino
<input type="radio" name="sexo" value="femenino" /> Femenino<br />

<label for="iddesplegable">Edad :</label>
<select id="iddesplegable" name="idddesplegable" title="Selecciona una opcion">
<option value=''>Seleccionar ...</option>
<option value='de 18 a 25' name='edades'>..de 18 a 25</option>
<option value='de 26 a 35' name='edades'>..de 26 a 35</option>
<option value='de 36 a 45' name='edades'>..de 36 a 45</option>
<option value='de 45 a 70' name='edades'>..de 45 a 70</option>
</select>

<label for="ciudad">Ciudad: </label>
<input type="text" name="ciudad" id="cuidad"/><br />
<label for="pais">Pais: </label>

<label >Aficiones:</label><br />

<input type='checkbox' value='Deportes' name='aficiones[]' />Deportes <br />
<input type='checkbox' value='Lectura' name='aficiones[]' />Lectura <br />
<input type='checkbox' value='Tecnologia' name='aficiones[]' />Tecnologia
<input type='checkbox' value='Viajar' name='aficiones[]' />Viajar <br />
=================================================

codigo de listadoBusqueda.php
.....
<?

if(!($iden = mysql_connect("localhost", "root", "")))

die("Error: No se pudo conectar");

if(!mysql_select_db("pibd", $iden))

die("Error: No existe la base de datos");


*****if(el campo ciudad esta relleno)
{
$consulta = "Usuario,Foto,FNacimiento,Ciudad,Pais from USUARIOS, and
Ciudad = $_GET['ciudad'];
}
else
****{ if (Aficiones tiene seleccionado algo)
$consulta="otra consulta"


$resultado = mysql_query($consulta, $iden);

if(!$resultado)

die("Error: no se pudo realizar la consulta");

while($fila = mysql_fetch_array($resultado))

{

//Mostrar resultado....


}

mysql_close($iden);

?>
.....

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:57.