PHP - Busqueda en mysql condicional

   
Vista:

Busqueda en mysql condicional

Publicado por Angel (6 intervenciones) el 11/11/2013 20:11:50
Hola a Todos, mi inconveniente es el siguiente, necesito realizar una busqueda condicional MYSQL con PHP, Me Explico

En mi formulario Tengo una Lista/menu en php llamado provincias1., necesito que si esta lista menu esta en blanco el sistema me consulte todos los registro de mi tabla movimientos.

De lo contrario si la lista menu tiene algun valor, como por ejemplo, "Villa der Mar",
El sistema me consulte solo los movimientos que en el campo provinc = a "Villa del Mar".

Saludo, espero me hayan comprendido,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Busqueda en mysql condicional

Publicado por Manuel (1 intervención) el 11/11/2013 20:40:52
Bueno, supongamos que almacenas el resultado de la consulta de la tabla movimientos en una variable, por ejemplo $menu.

Para comprobar si esa variable tiene contenido, es decir, la consulta anterior devuelve algún valor podemos utilizar:

if (isset ($menu)){
q muestre solo los de la variable}
else{
que muestre todos los registros}


Espero haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Busqueda en mysql condicional

Publicado por Angel (6 intervenciones) el 11/11/2013 21:30:41
En la tabla, el campo provinc siempre tiene un valor, entonces si dejo en blanco la Lista/menu para seleccionar todos los registro, lo que hace es que no me selecciona ninguno.

lo que necesito es algo parecido a esto

if($_POST['provincia1'] == "")
{
SELECT * from nombre_tbl
}
Else
{
SELECT * from nombre_tbl WHERE provincias=el valor que tiene la Lista/Menu;
}

pero cuando pongo la condicion del if($_POST['provincia1'] == ""), lo que me da es un error como si no reconociera la Lista/Menu llamada provincia1. y no se que hacer :

Notice: Undefined index: provincia1 in C:\xampp\htdocs\institucionpn\list_mov.php on line 72.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jon

Busqueda en mysql condicional

Publicado por Jon (27 intervenciones) el 12/11/2013 00:11:52
Hola Angel.
Sin lugar alguna, es mejor que realices la búsqueda por la misma query y no por PHP, ya que al tener una gran cantidad de datos que procesar, la conexión puede no aguantarte y se te caiga el programa.

Te dejo un ejemplo de la query:
1
2
3
select * from provincias1
    where
        provinc = "Villa del Mar";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Busqueda en mysql condicional

Publicado por Angel (6 intervenciones) el 12/11/2013 01:34:48
Hola a todos, Gracias por su ayuda, ya pude resolver el inconveniente,

Lo que hice fue enviar el valor del $_POST["provincia1"] a la variable $provincia, luego hice el select utilizando la variable $provincia en vez de $_POST["provincia1"].

y me quedo de la siguiente manera

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if ($provincia != "")
{
 
mysql_select_db($database_conexionabm, $conexionabm);
$query_Recordset1 = sprintf("SELECT * FROM movimientos WHERE provincia = '$provincia ORDER BY movimientos.idmovimientos DESC", GetSQLValueString("%" . $varProducto_Recordset1 . "%", "text"));
$Recordset1 = mysql_query($query_Recordset1, $conexionabm) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
}
elseif ($sector == "" )
{
mysql_select_db($database_conexionabm, $conexionabm);
$query_Recordset1 = sprintf("SELECT * FROM movimientos WHERE provincia = '$provincia ORDER BY movimientos.idmovimientos DESC", GetSQLValueString("%" . $varProducto_Recordset1 . "%", "text"));
$Recordset1 = mysql_query($query_Recordset1, $conexionabm) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
}

y todo me funciona perfectamente.
Muchas gracias Gracias a todos, en especial a Manuel y a Jon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar