Foros del Web » Programando para Internet » PHP »

Otro novato. Consulta con varios criterios

Estas en el tema de Otro novato. Consulta con varios criterios en el foro de PHP en Foros del Web. Hola, por fin he dado el paso de meterme en un manual (como no desarrolloweb.com y memorias de un aprendiz http://www.rinconastur.com/php/ ) que me han ...
  #1 (permalink)  
Antiguo 22/04/2004, 04:28
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 14 años, 6 meses
Puntos: 13
Otro novato. Consulta con varios criterios

Hola, por fin he dado el paso de meterme en un manual (como no desarrolloweb.com y memorias de un aprendiz http://www.rinconastur.com/php/) que me han permitido adquirir unos pequeños conocimientos de PHP suficientes como para empezar a dar el coñazo en este foro, ya que antes no sabía ni por dónde empezar. Así que agradezco de antemano vuesra paciencia.
Ruego me contestéis como si fuese un niño de tres años, al menos de momento.

He buscado y rebuscado, lo prometo, pero lo más parecido que he encontrado es esta consulta aquí http://www.forosdelweb.com/showthrea...ueda+criterios
Pero mi consulta es la siguiente: Si el visitante deja de cubrir uno de los campos de la consulta, sólo saldrían los registros cuyo campo dejado en blanco esté en blanco en la tabla. Yo necesitaría permitir dejarlo en blanco y que en ese caso salgan todos los regitros: Es decir: Si hacen una consulta donde se pide que se elija Nombre, provincia, y sexo, por ejemplo, que al dejar en blanco el campo nombre, salgan todos los registros que coincidan con la provincia elgida y el sexo elegido, o si se deja también el sexo en blanco, que salgan todos los registros de la provincia elegida. Todo lo que he visto provoca que solo salgan los registros donde el campo nombre y sexo estén en blanco. Es decir, en mi caso, ninguno.
Seguro que es una consulta de base, pero...Gracias de antemano.
  #2 (permalink)  
Antiguo 22/04/2004, 05:02
 
Fecha de Ingreso: abril-2004
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 13 años, 7 meses
Puntos: 0
Hola, paisano.

Verás, creo que lo más cómodo es que construyas la query dinámicamente (como imagino que haces) sólo teniendo en cuenta que el campo no sea blanco:

ejemplo:

$sql="select ... where true";

if ($_Post["Campo"] != "") {
$sql.=" and campo='".$_Post["Campo"]."'";
}

Así te olvidas de los campos que el usuario no ha rellenado.

Un saludo.
  #3 (permalink)  
Antiguo 22/04/2004, 09:26
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 14 años, 6 meses
Puntos: 13
Había intentado algo creando la variable de consulta pero creo que me fallaba algo en la sintaxis. La verdad es que tengo mucho que aprender. Voy a probar. Gracias

Última edición por autonotel; 22/04/2004 a las 09:27
  #4 (permalink)  
Antiguo 22/04/2004, 10:07
 
Fecha de Ingreso: abril-2004
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 13 años, 7 meses
Puntos: 0
Si necesitas algún detalle más concreto sobre PHP, coméntamelo.

Un placer ayudar.
  #5 (permalink)  
Antiguo 22/04/2004, 10:14
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 14 años, 6 meses
Puntos: 13
Pues ya que estás ahí, tengo problemas: Ahora lo que hace es listarme todo ponga o no el nombre, en este caso. Te pongo el código que hice, a ver qué está mal.

<?
//Conexion con la base
mysql_connect("localhost","user","password");

$sql="select * from ejemplo";

if ($_Post["nombre"]!="") {
$sql.="select * from ejemplo and nombre='".$_Post["nombre"]."'";
}
$result=mysql_db_query("db","$sql");
?>
<table align="center">
<tr>
<th>Nombre</th>
<th>Teléfono</th>
</tr>
<?
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
echo '<tr><td>'.$row["nombre"].'</td>';
echo '<td>'.$row["telefono"].'</td></tr>';

}
mysql_free_result($result)
?>

Gracias
  #6 (permalink)  
Antiguo 22/04/2004, 10:18
 
Fecha de Ingreso: marzo-2004
Ubicación: $_SERVER['DOCUMENT_ROOT'] :-)
Mensajes: 100
Antigüedad: 13 años, 8 meses
Puntos: 0
if ($_POST["nombre"]!="") {
$sql.="select * from ejemplo where nombre='".$_Post["nombre"]."'";
__________________
-- girls.code.better --
  #7 (permalink)  
Antiguo 22/04/2004, 10:44
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 14 años, 6 meses
Puntos: 13
En fin. Llevo tres días con esto. Se nota no?
Gracias.
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 09:05.