Dudas sentencia búsqueda MySql
Hola 'pedroip'.
Ante todo gracias por atender mi pregunta.
El problema que tengo es con una sentencia de búsqueda en mi web que trabaja con apache, php y mysql.
Envío unos datos a través de un formulario ( son varias listas/menu con varias opciones)para hacer una búsqueda en una base de datos de vinos.
Cómo ejemplo para explicarme, decir que uno de los campos es 'pais' y el formulario envía dos posibles opciones:
1.- El nombre de un país
2.- El número '0' si no se selecciona ninguno.
Con esta segunda opción, lo que quiero es que me devuelva todos los países que haya en el campo 'pais'.
Es decir, lo que he hecho (lo que pretendo) es una búsqueda condicional, si aparece el nombre del país, enseño los registros de ese país y si no se selecciona ninguno ( variable='0' ) entonces se presentan todos los países del campo países.
La sentencia que he construido no funciona bien, sólo funciona la primera parte (presentar todos los países). Supongo que hay una o muchas cosas mal.
La sentencia de búsqueda es esta:
$query_maestra = "SELECT vino.id_vino, vino.nombre, vino.dominio, vino.region, vino.denominacion, vino.tipo, vino.uva, vino.cosecha, vino.precio, vino.tbotella, vino.coment, vino.califica, vino.imagen FROM vino ";
/* Si no se selecciona en el formulario ningún pais esta sentencia busca en todos los del campo pais de la tabla vino */
if ($_GET['pais']=='0') {
$query_maestra .= "WHERE(vino.pais=vino.pais) " ;
}
else {
$query_maestra .= "OR (vino.pais=='".$pais."') ";
}
Ante todo gracias por atender mi pregunta.
El problema que tengo es con una sentencia de búsqueda en mi web que trabaja con apache, php y mysql.
Envío unos datos a través de un formulario ( son varias listas/menu con varias opciones)para hacer una búsqueda en una base de datos de vinos.
Cómo ejemplo para explicarme, decir que uno de los campos es 'pais' y el formulario envía dos posibles opciones:
1.- El nombre de un país
2.- El número '0' si no se selecciona ninguno.
Con esta segunda opción, lo que quiero es que me devuelva todos los países que haya en el campo 'pais'.
Es decir, lo que he hecho (lo que pretendo) es una búsqueda condicional, si aparece el nombre del país, enseño los registros de ese país y si no se selecciona ninguno ( variable='0' ) entonces se presentan todos los países del campo países.
La sentencia que he construido no funciona bien, sólo funciona la primera parte (presentar todos los países). Supongo que hay una o muchas cosas mal.
La sentencia de búsqueda es esta:
$query_maestra = "SELECT vino.id_vino, vino.nombre, vino.dominio, vino.region, vino.denominacion, vino.tipo, vino.uva, vino.cosecha, vino.precio, vino.tbotella, vino.coment, vino.califica, vino.imagen FROM vino ";
/* Si no se selecciona en el formulario ningún pais esta sentencia busca en todos los del campo pais de la tabla vino */
if ($_GET['pais']=='0') {
$query_maestra .= "WHERE(vino.pais=vino.pais) " ;
}
else {
$query_maestra .= "OR (vino.pais=='".$pais."') ";
}
1 Respuesta
Respuesta de pedroip
1