Foros del Web » Programando para Internet » PHP »

Problema Buscador PHP MYSQL 2 campos busqueda

Estas en el tema de Problema Buscador PHP MYSQL 2 campos busqueda en el foro de PHP en Foros del Web. Hola a todos! Tengo un buscador en PHP que se conecta a MYSQL y muestre unos resultados de búsqueda en función del nombre de empresa ...
  #1 (permalink)  
Antiguo 30/08/2011, 04:32
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
Problema Buscador PHP MYSQL 2 campos busqueda

Hola a todos!

Tengo un buscador en PHP que se conecta a MYSQL y muestre unos resultados de búsqueda en función del nombre de empresa que se instroduce en el campo.

El problema que tengo es que no se como modificar el código para añadir un segundo campo. De esta manera buscaría por Nombre y Provincia y sólo mostaria los resultados en función de los 2 criterios.

El código es este:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<form action="bus.php" method="post"> 
Buscar: <input name="palabra"> 
<input type="submit" name="buscador" value="Buscar"> 
</form> 
<? 
if ($_POST['buscador']) 
{ 
// Tomamos el valor ingresado 
$buscar = $_POST['palabra']; 

// Si está vacío, lo informamos, sino realizamos la búsqueda 
if(empty($buscar)) 
{ 
echo "No se ha ingresado una cadena a buscar"; 
}else{ 
// Conexión a la base de datos y seleccion de registros 
$con=mysql_connect("localhost","xxxx","xxxx"); 
$sql = "SELECT * FROM buscador WHERE Nombre like '%$buscar%' ORDER BY Nombre DESC"; 
mysql_select_db("basedatos", $con); 

$result = mysql_query($sql, $con); 

// Tomamos el total de los resultados 
$total = mysql_num_rows($result); 

// Imprimimos los resultados 
if ($row = mysql_fetch_array($result)){ 
echo "Resultados para: <b>$buscar</b>"; 
do { 
?> 
</br></br> 
<table align=\"center\"> 
    <tr><th width=520px bgcolor=\"#65b3f9\">Empresa: <?=$row['Nombre'];?></th></br><th width=520px bgcolor=\"#339999">Provincia: <?=$row['Provincia'];?></th></br><th width=520px bgcolor=\"#65b3f9\"><?=$row['Alcance'];?></th></br> 
    </tr> 
</table> 
<? 
} while ($row = mysql_fetch_array($result)); 
echo "<p>Resultados: $total</p>"; 
} else { 
// En caso de no encontrar resultados 
echo "No se encontraron resultados para: <b>$buscar</b>"; 
} 
} 
} 
?> 
</body> 
</html>
Gracias!
  #2 (permalink)  
Antiguo 30/08/2011, 04:51
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Problema Buscador PHP MYSQL 2 campos busqueda

Por lo que veo tienes un formulario con un input palabra. Luego, en el PHP utilizas esta línea para acceder al valor que se ha introducido:
Código PHP:
Ver original
  1. $buscar = $_POST['palabra'];

Y, por último con este código compruebas primero si está vacío el campo que se envió y, luego ejecutas la consulta:
Código PHP:
Ver original
  1. if(empty($buscar)) {
  2.    echo "No se ha ingresado una cadena a buscar";
  3. }else{
  4.    // Conexión a la base de datos y seleccion de registros
  5.    $con=mysql_connect("localhost","xxxx","xxxx");
  6.    $sql = "SELECT * FROM buscador WHERE Nombre like '%$buscar%' ORDER BY Nombre DESC";
  7.    // ...

Es tan fácil como duplicar lo que tienes. Poner otro input en el formulario que tenga un name que tú quieras (por ejemplo, palabra2). Duplicar la línea de extracción para que acceda también al nuevo valor:
Código PHP:
Ver original
  1. $buscar = $_POST['palabra'];
  2. $buscar2 = $_POST['palabra2'];

Y, por último, añadirlo al if que te comenté antes:
Código PHP:
Ver original
  1. if (empty($buscar) || empty($buscar2)) {
  2.    echo "No se ha ingresado alguna de las dos cadenas a buscar";
  3. }else{
  4.    // Conexión a la base de datos y seleccion de registros
  5.    $con=mysql_connect("localhost","xxxx","xxxx");
  6.    $sql = "SELECT * FROM buscador WHERE Nombre LIKE '%$buscar%' AND Provincia = '$buscar2' ORDER BY Nombre DESC";
  7.    // ...

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 30/08/2011, 10:01
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema Buscador PHP MYSQL 2 campos busqueda

Gracias vgonga1986 por responder tan rapido y ser muy claro en la respuesta.

Efectivamente funciona como tu comentas y la solucion que aportas es la que habia pensado pero no sabia realmente como trasladarla al codigo correctamente.Ahora funciona muy bien (tengo que hacer algunas pruebas mas).


Muchas gracias de verdad!!!

Etiquetas: campos, html, mysql, registro, sql, buscadores, busquedas
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 06:46.