Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] buscar por mas de un campo

Estas en el tema de buscar por mas de un campo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/01/2014, 17:06
 
Fecha de Ingreso: enero-2007
Mensajes: 58
Antigüedad: 17 años, 3 meses
Puntos: 3
buscar por mas de un campo

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:
Código Javascript:
Ver original
  1. <script>
  2. function BuscarActivo(){   
  3. <?php
  4. $buscar = $_POST["busqueda"];
  5. if (($buscar)==""){
  6. $buscar = 0;
  7. }
  8. if (($buscar)==null){
  9. $buscar = 0;
  10. }
  11. if ((isset($buscar))or (isset($buscar1))) {
  12.    
  13.     mysql_select_db($database_conexionsara, $conexionsara);
  14.     mysql_query("SET NAMES 'utf-8'");
  15.     if (("tipocampo")== 1){
  16.         $query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SECUENCIA = $buscar");
  17.     }else {
  18.         $query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SERIE = $buscar");
  19.     }
  20.     $Recordset2 = mysql_query($query_Recordset2, $conexionsara) or die(mysql_error());
  21.     $row_Recordset2 = mysql_fetch_assoc($Recordset2);
  22.     $totalRows_Recordset2 = mysql_num_rows($Recordset2);
  23.     if (isset($fechaConvert)) {
  24.         $date1 = str_replace("/","-",$row_Recordset2['FECHAACTUAL']);
  25.         $fechaConvert= date('d/m/y', strtotime($date1));
  26.     }
  27.     if (isset($fechaConvert1)) {
  28.         $date2 = str_replace("/","-",$row_Recordset2['FECHAADQUISICION']);
  29.         $fechaConvert1= date('d/m/y', strtotime($date2));
  30.     }  
  31.  
  32. }
  33. ?>
  34. </script>
  #2 (permalink)  
Antiguo 27/01/2014, 17:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: buscar por mas de un campo

Veo un error en la línea número 15, creo que te faltó el $_POST y "tipocampo" debe estar entre corchetes, no entre paréntesis.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 29/01/2014, 16:47
 
Fecha de Ingreso: enero-2007
Mensajes: 58
Antigüedad: 17 años, 3 meses
Puntos: 3
Respuesta: buscar por mas de un campo

gracias alexis por intentar ayudarme.
probe tu consejo cambie la linea 15 que decia est:
if (("tipocampo")== 1){
por tu recomendacion :
if ($_POST["tipocampo"]== 1){
e igual no funciona cuando busco por secuencia que es la opcion 1 hace la busqueda perfecto pero, cuando busco por serie que es la opcion 2 me da una pantalla en blanco.

esto sucede cuando lo tengo como yo lo hice originalmente y cuando lo pongo como me lo recomendaste.
  #4 (permalink)  
Antiguo 29/01/2014, 19:23
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: buscar por mas de un campo

En phpMyadmin, realiza dicha búsqueda directamente con el valor 2 para que corrobores si se obtienen datos.

Código MySQL:
Ver original
  1. SELECT * FROM activos WHERE activos.SERIE = 2

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 30/01/2014, 08:57
 
Fecha de Ingreso: enero-2007
Mensajes: 58
Antigüedad: 17 años, 3 meses
Puntos: 3
Respuesta: buscar por mas de un campo

ok el valor dos no es el que se busca es el que define cual consulta ejecutar.

if (("tipocampo")== 1){



en los campos de busqueda los valores son varchar letras y numeros ejemplo:
cuando "tipocampo" es igual a 1 el valor de

$buscar = $_POST["busqueda"];

podria se 009435

cuando "tipocampo" es igual a 2 el valor de

el valor de

$buscar = $_POST["busqueda"];

podria ser F245621V3542C

el valor 1 o 2 solo indica cual consulta SQL ejecutar..
  #6 (permalink)  
Antiguo 30/01/2014, 10:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: buscar por mas de un campo

Entonces, el problema está con $_POST["tipocampo"]. ¿Puedes mostrarnos el bloque de código desde la cual envías este dato?, quizá ahí está el problema o no lo estás recepcionando correctamente.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 31/01/2014, 16:41
 
Fecha de Ingreso: enero-2007
Mensajes: 58
Antigüedad: 17 años, 3 meses
Puntos: 3
Respuesta: buscar por mas de un campo

Código HTML:
Ver original
  1. <form name="form2" id="form2" method="POST" action="buscar_car_puen_aero-term.php">
  2.           <p>Secuencia:
  3.             <input name="busqueda" type="text" id="busqueda" OnClick="BuscarActivo()" />
  4.             Buscar Por:
  5.             <label for="tipocampo"></label>
  6.             <select name="tipocampo" id="tipocampo">
  7.               <option value="1">SECUENCIA</option>
  8.               <option value="2">SERIE</option>
  9.             </select>
  10. <input type="submit" name="btnBuscar" id="btnBuscar" value="Buscar Activo"/>
  11.             <?php echo $totalRows_Recordset2 ?> Activos encontrados
  12.             <?php echo  "Texto buscar: ".$buscar; ?>
  13.           </p>
  14.         </form>

he descubierto que cuando busco en el campo SERIE por algun dato que contenga aunque sea una sola letra aun y cuando este es varchar en la base de datos varchar me trae la pantalla en blanco. si busco un valor numerico aunque tenga ceros por delante me lo hace bien. las busquedas en el campo SECUENCIA todas son numeros aunque sea varchar el campo.
alguna idea?
  #8 (permalink)  
Antiguo 31/01/2014, 18:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: buscar por mas de un campo

Si dices que el campo en el que buscas el dato es de tipo VARCHAR, debes colocar comillas simples al inicio y final del dato a buscar.

Código PHP:
Ver original
  1. $query_Recordset2 = sprintf("SELECT * FROM activos WHERE activos.SERIE = '$buscar'");

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 01/02/2014, 20:08
 
Fecha de Ingreso: enero-2007
Mensajes: 58
Antigüedad: 17 años, 3 meses
Puntos: 3
Respuesta: buscar por mas de un campo

gracias funcionó perfecto con las comillas simples.
muchas gracias por la ayuda..

Etiquetas: campo, mysql, select, sql
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 23:28.