PHP - busqueda por mas de un campo

   
Vista:

busqueda por mas de un campo

Publicado por MARIO marioathanasiadis@gmail.com (33 intervenciones) el 30/01/2014 00:12:43
buenas amigos.
tengo este problema
tengo un campo en el que se escribe un dato a buscar (busqueda) seguido un campo lista/menu en el que se escoje por que campo quiero buscar (tipocampo) y un boton que hace la busqueda en la base de datos.

se supone que yo pongo el dato y luego escojo por que campo quiero buscar y dependiendo del valor del campo (tipocampo) que es 1 ó 2 el realiza un SQL a mi base de datos.
problema:
cuando pongo el valor a buscar y escojo la opcion 1 me hace la busqueda perfecto pero al escojer el valor 2 me trae una pantalla en blanco.
codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<script>
    function BuscarActivo(){
    <?php
    $buscar = $_POST["busqueda"];
    if (($buscar)==""){
    $buscar = 0;
    }
    if (($buscar)==null){
    $buscar = 0;
    }
    if ((isset($buscar))or (isset($buscar1))) {
 
        mysql_select_db($database_conexionsara, $conexionsara);
        mysql_query("SET NAMES 'utf-8'");
        if (("tipocampo")== 1){
            $query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SECUENCIA = $buscar");
        }else {
            $query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SERIE = $buscar");
        }
        $Recordset2 = mysql_query($query_Recordset2, $conexionsara) or die(mysql_error());
        $row_Recordset2 = mysql_fetch_assoc($Recordset2);
        $totalRows_Recordset2 = mysql_num_rows($Recordset2);
        if (isset($fechaConvert)) {
            $date1 = str_replace("/","-",$row_Recordset2['FECHAACTUAL']);
            $fechaConvert= date('d/m/y', strtotime($date1));
        }
        if (isset($fechaConvert1)) {
            $date2 = str_replace("/","-",$row_Recordset2['FECHAADQUISICION']);
            $fechaConvert1= date('d/m/y', strtotime($date2));
        }
 
    }
    ?>
    </script>
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
Imágen de perfil de xve

busqueda por mas de un campo

Publicado por xve (5515 intervenciones) el 30/01/2014 09:19:11
Hola Mario, todo parece que esta correcto... lo único que se me ocurre, es que el campo SERIE de la base de datos, no sea un campo numérico... podría ser?

Entiendo que estas buscando un valor que existe...
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 por mas de un campo

Publicado por MARIO (33 intervenciones) el 30/01/2014 15:54:04
si es un valor que existe pero el campo es varchar ambos campos son varchar.
contienen letras y numeros .
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 xve

busqueda por mas de un campo

Publicado por xve (5515 intervenciones) el 30/01/2014 16:52:07
Ok, entonces tendría que ir entre comillas... algo así:

1
$query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SERIE ='".$buscar."'");

Otra cosa que veo, es que esto nunca se cumple...
1
if (("tipocampo")== 1)
"tipocampo" es un texto no una variable, por lo que nunca sera igual a 1!!!
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 por mas de un campo

Publicado por MARIO (33 intervenciones) el 30/01/2014 17:25:45
lo curioso es que si esta ejecutando esta sentencia bien:
$query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SECUENCIA = $buscar");
y si cambio en el campo lista menu y escojo la opcion de buscar a SERIE que es = 2 me trae una pantalla en blanco por lo que no se ejecuta el primer select sino el segundo. entonces deberia estar funcionando esto: if (("tipocampo")== 1)

voy a cambiar la sentencia y a ponerla como me indicas y te comento el resultado
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 por mas de un campo

Publicado por MARIO (33 intervenciones) el 30/01/2014 18:00:15
segui tu recomendacion pero da error con lo de las comillas
$query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SERIE ='".$buscar."'");
$buscar es una variable cuyo valor se define arriba
el valor proviene del campo "busqueda" que obtengo por POST asi
$_POST["busqueda"]
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 xve

busqueda por mas de un campo

Publicado por xve (5515 intervenciones) el 31/01/2014 08:00:29
Si te da error de comillas, entiendo que $buscar no tiene ningun valor!!!

Encima de esa linea pon:
1
echo "Texto buscar: ".$buscar;

Haber que te devuelve...
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 xve

busqueda por mas de un campo

Publicado por xve (5515 intervenciones) el 31/01/2014 07:59:04
Ese condicional no funcionara nunca Mario... es como decir:
if ("casa"=="verde")

el texto casa no es el mismo que el texto verde!!!

En tu código es lo mismo, el texto "tipocampo" no es un uno!!!
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 por mas de un campo

Publicado por mario (33 intervenciones) el 31/01/2014 21:30:15
ok te explico en el formulario hay un campo busqueda este campo contiene el valor que el usuario ingresa que podria ser un numero de serie o un codigo de secuencia, estos valores estan almacenados en una base de datos en dos campos distintos SECUENCIA y SERIE. el usuario ingresa en el campo busqueda el valor de la serie y en el siguiente campo que es un lista menu que se llama "tipocampo" escoje por cual campo quiere hacer la busqueda si por SERIE o por SECUENCIA si escoje SECUENCIA el valor es 1 si escoje SERIE el valor es 2 asi tenemos dos valores el dato a buscar en "busqueda" y la opcion de busqueda "tipocampo" luego paso el valors por POST a una variable y en el if verifica que obcion escogio el usuario si escoje la opcion 1 hace un query por SECUENCIA y si escoje la opcion 2 hace un query por SERIE ambos querys usando el valor del campo busqueda.
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 por mas de un campo

Publicado por MARIO (33 intervenciones) el 31/01/2014 23:38:43
he descubierto donde esta el problema pero no se como arreglarlo.
si busco en la base de datos por el campo secuencia lo hace bien porque todas las secuencias son numeros aun y cuando el campo es varchar. cuando busco por el campo SERIE solo si busco un numero lo hace bien, pero si tiene aun sea solo una letra me trae pantalla en blanco aun y cuando el campo SERIE tambien es varchar.

alguna idea?
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 xve

busqueda por mas de un campo

Publicado por xve (5515 intervenciones) el 01/02/2014 09:15:32
Por esa razón te puse las comillas Mario... si es una cadena tiene que ir entre comillas.
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 por mas de un campo

Publicado por MARIO (33 intervenciones) el 01/02/2014 18:48:21
GRACIAS, GRACIAS, GRACIAS ....
gracias a dios por personas como tu que desinteresadamente ayudan a los demas.
las comillas asi:
='".$buscar."'");
me daban error.
pero al ponerlas asi:
='$buscar');
me funcionó perfecto..
gracias de nuevo por el dato de las comillas...
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 xve

busqueda por mas de un campo

Publicado por xve (5515 intervenciones) el 02/02/2014 19:54:40
Hola Mario, la verdad es que es muy extraño, de la otra manera debería de funcionar-te, pero me alegra que te funcione de esta manera.

Gracias por comentarlo!!!
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