Foros del Web » Programando para Internet » PHP »

Como crear un formulario de consulta multiple

Estas en el tema de Como crear un formulario de consulta multiple en el foro de PHP en Foros del Web. Hola, cómo puedo programar un formulario de consulta a una base de datos donde pueda hacer consultas multiples. Por ejemplo consultar por autores o por ...
  #1 (permalink)  
Antiguo 09/12/2013, 16:59
 
Fecha de Ingreso: diciembre-2013
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Como crear un formulario de consulta multiple

Hola, cómo puedo programar un formulario de consulta a una base de datos donde pueda hacer consultas multiples.
Por ejemplo consultar por autores o por contenido de un texto.
Este es el codigo que tengo y me funciona para una variable (texto).
  #2 (permalink)  
Antiguo 09/12/2013, 22:49
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Como crear un formulario de consulta multiple

El codigo creo que te lo olvidaste, igualmente, la idea es simple, sabes que tienes que buscar por autor o por contenido (o por ambas) entonces tu consulta la armas asi:
Código PHP:
Ver original
  1. $sentencia = 'SELECT * FROM libros WHERE TRUE ';
  2. if(isset($_POST['autor']) && $_POST['autor']!='')
  3. $sentencia .= ' AND autor="'.$_POST['autor'].'"';
  4. if(isset($_POST['texto']) && $_POST['texto']!='')
  5. $sentencia .= ' AND texto LIKE "%'.$_POST['texto'].'%"';

por cuestiones de seguridad hacerlo asi es una pesima idea, seria conveniente bindear los parametros con mysqli pero la idea de como armar la consulta es esa
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 10/12/2013, 12:55
 
Fecha de Ingreso: diciembre-2013
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Como crear un formulario de consulta multiple

Mil gracias NSD por tu respuesta. El codigo lo pegué pero no salio. Lo pego al final. Si me puedes ayudar estaría muy agradecido, llevo días tratando de hacerlo funcionar.


<form name="form1" method="post" action="buscador.php" id="cdr" >
<h3>Buscador </h3>
<p>
<input name="busca" type="text" id="busqueda">
<input type="submit" name="Submit" value="Autores" />
</p>
<p>
<input name="busca" type="text" id="busqueda">
<input type="submit" name="Submit" value="Texto" />
</p>

</form>
<p>
<style type="text/css">
input{outline:none;border:0px;}
#busqueda{background:#585858;color:#fff;}
#cdr{padding:5px;background:grey;width:220px;borde r-radius:10px 0px 0px 10px;}
#tab{background:#CCC;;border-radius:10px 10px 10px 10px;}
</style>

<?php
$busca="";
$busca=$_POST['busca'];
mysql_connect("localhost","achinumet_rev","tabla") ;// si haces conexion desde internnet usa 3 parametros si es a nivel local solo 2
mysql_select_db("achinumet_revista");//nombre de la base de datos
if($busca!=""){
$busqueda=mysql_query("SELECT * FROM tabla WHERE autores LIKE '%".$busca."%'") or;
$busqueda=mysql_query("SELECT * FROM tabla WHERE texto LIKE '%".$busca."%'");
?>
<table width="995" border="1" id="tab">
<tr>
<td width="40">Titulo </td>
<td width="113">Resumen</td>
<td width="136">Autores</td>
<td width="196">Summary</td>
<td width="476">Texto</td>
</tr>

<?php

while($f=mysql_fetch_array($busqueda)){
echo '<tr>';
echo '<td width="19">'.$f['titulo'].'</td>';
echo '<td width="61">'.$f['resumen'].'</td>';
echo '<td width="157">'.$f['autores'].'</td>';
echo '<td width="221">'.$f['summary'].'</td>';
echo '<td width="176">'.$f['texto'].'</td>';
echo '<td>'.'<input type="button" onclick="Borra('.$f['id_cliente'].')" value="Borrar cliente">'.'</td>';
echo '<td>'.'<a href="#">'.'Modificar'.'</a>'.'</td>';
echo '</tr>';
//onclick="return confirm('¿Realmente deseas eliminar este articulo?')";
//cambiar los nombres de los campos de busqueda
}

}
?>
  #4 (permalink)  
Antiguo 10/12/2013, 13:15
Avatar de AnGuisi  
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Como crear un formulario de consulta multiple

Fijate que tienes un mismo nombre para ambos formularios. Te aconsejaría colocarle nombres diferentes y colocar un solo boton submit. Al recibirlo haces lo que dijo el compañero NSD. Supongamos que tienes dos campos de texto, uno llamado autores y otro llamado texto.

Código PHP:
Ver original
  1. if (!empty($_POST['autores']) {
  2. $autores = $_POST['autores'];
  3. $busqueda=mysql_query("SELECT * FROM tabla WHERE autores LIKE '%".$autores."%'");
  4.                                              }
Y de la misma forma harias con el otro formulario.
Cabe destacar que esto funcionaria si solo permites que el usuario ingrese la busqueda por alguno de los dos campos. Si quieres permitir que la busqueda pueda realizarse utilizando los dos campos el procedimiento seria diferente.
  #5 (permalink)  
Antiguo 10/12/2013, 14:14
 
Fecha de Ingreso: diciembre-2013
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Como crear un formulario de consulta multiple

Gracias AnGuisi por tu pronta respuesta. Sabes estoy ya un poco confundido entre tanto código.
Necesito que el usuario ingrese la busqueda por alguno de los dos campos: autores o texto.
Como me dijiste, hice 2 formularios y dupliqué el php que me enviaste, pero no me resulta, desaparece el formulario en la página de respuesta.
Exactamente desde dónde inserto el php que me envistae y cómo lo uno al segundo.
Gracias de antemano
  #6 (permalink)  
Antiguo 10/12/2013, 15:19
Avatar de AnGuisi  
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Como crear un formulario de consulta multiple

Código HTML:
Ver original
  1. <form name="form1" method="post" action="buscador.php" id="cdr" >
  2. <h3>Buscador </h3>
  3. <p>
  4. <input name="autores" type="text" id="busqueda">
  5.  
  6. </p>
  7. <p>
  8. <input name="texto" type="text" id="busqueda">
  9. <input type="submit" name="Submit" value="Texto" />
  10. </p>
  11.  
  12. </form>
  13.  
  14.  
  15. <p>
  16. <style type="text/css">
  17. input{outline:none;border:0px;}
  18. #busqueda{background:#585858;color:#fff;}
  19. #cdr{padding:5px;background:grey;width:220px;borde r-radius:10px 0px 0px 10px;}
  20. #tab{background:#CCC;;border-radius:10px 10px 10px 10px;}
Código PHP:
Ver original
  1. <?php
  2. $autores="";
  3. $texto="";
  4.  
  5. mysql_connect("localhost","achinumet_rev","tabla") ;// si haces conexion desde internnet usa 3 parametros si es a nivel local solo 2
  6. mysql_select_db("achinumet_revista");//nombre de la base de datos
  7. if(!empty($_POST["autores"]){
  8. $autores = $_POST["autores"];
  9. $busqueda=mysql_query("SELECT * FROM tabla WHERE autores = '$autores'");
  10. }
  11. if (!empty($_POST["texto"] {
  12. $texto = $_POST["texto"];
  13. $busqueda=mysql_query("SELECT * FROM tabla WHERE autores = '$autores'"); /* Aquí debe ir tu otra consulta */
  14.                                             }
  15. ?>
  16. <table width="995" border="1" id="tab">
  17. <tr>
  18. <td width="40">Titulo </td>
  19. <td width="113">Resumen</td>
  20. <td width="136">Autores</td>
  21. <td width="196">Summary</td>
  22. <td width="476">Texto</td>
  23. </tr>
  24.  
  25. <?php
  26.  
  27. while($f=mysql_fetch_array($busqueda)){
  28. echo '<tr>';
  29. echo '<td width="19">'.$f['titulo'].'</td>';
  30. echo '<td width="61">'.$f['resumen'].'</td>';
  31. echo '<td width="157">'.$f['autores'].'</td>';
  32. echo '<td width="221">'.$f['summary'].'</td>';
  33. echo '<td width="176">'.$f['texto'].'</td>';
  34. echo '<td>'.'<input type="button" onclick="Borra('.$f['id_cliente'].')" value="Borrar cliente">'.'</td>';
  35. echo '<td>'.'<a href="#">'.'Modificar'.'</a>'.'</td>';
  36. echo '</tr>';
  37. //onclick="return confirm('¿Realmente deseas eliminar este articulo?')";
  38. //cambiar los nombres de los campos de busqueda
  39. }
  40.  
  41. }
  42. ?>

Prueba de esa forma, adaptalo a tus necesidades si son pertinentes y trata de corregir los errores que pueda arrojarte. Ten en cuenta que la idea es que puedas entender lo que trato de decirte para que para cualquier modificación y eventualidad puedas hacerlo sin mayor problema.
  #7 (permalink)  
Antiguo 10/12/2013, 16:09
 
Fecha de Ingreso: diciembre-2013
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Como crear un formulario de consulta multiple

Gracias AnGuisi, en principio no me funciona, no me muestra nada en la página de resultados http://www.ideagrafica.cl/buscador.php

Con mi codigo original veo esto
http://www.ideagrafica.cl/buscadororiginal.php
y me busca por texto.
Si pones en texto diabetes me arroja resultados, pero cuando pones orellana no pasa nada.
he tratado de ver por qué no me funciona tu código pero nada.
Una consulta para que sirve este paréntesis }

Muchas gracias por tu tiempo y buena voluntad.
Saludos
JC

Etiquetas: formulario, variable
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 22:40.