Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2008, 17:24
Plucky005
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cuautla, Mor.
Mensajes: 15
Antigüedad: 15 años, 5 meses
Puntos: 1
Como hacer un buscador avanzado con PHP...

Hola estoy realizando un sistema con php y mysql. En si mi sistema realiza altas, bajas, modiifcaiones entre otras opciones. Solo que tengo un pequeño problema al realizar una busqueda avanzada.

Ya tengo un buscador, pero no me gusta como funciona ya que solo busca por campo especifico y yo quiero que busque por medio de varios campos...

este es el codigo para el formulario de la Busqueda...

<form name="buscador" method="post" action="buscar.php">
<?
$bd_servidor = "localhost";
$bd_usuario = "root";
$bd_contrasenya = "";
$bd_bdname = "computadoras";
$bd_tabla = "pcescritorio"; // Tabla donde se harán las búsquedas
// Conexión y selección de la base de datos
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);
mysql_select_db($bd_bdname,$link);
?>
<strong>Buscar por:</strong>
<select name="campo">
<?php
$result = mysql_query("SHOW FIELDS FROM `$bd_tabla`",$link);
while($row = mysql_fetch_row($result)) {

?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[0]; ?></option>
<?php
}
?>
</select>
Palabra(s): <input type="text" name="palabra"><br>
<input type="submit" value="Buscar" name="enviar">
</form>


Y este Codigo, es el resultado que arroja...

<?
$bd_servidor = "localhost";
$bd_usuario = "root";
$bd_contrasenya = "";
$bd_bdname = "computadoras";
$bd_tabla = "pcescritorio"; // Tabla donde se harán las búsquedas

// Conexión y selección de la base de datos
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);
mysql_select_db($bd_bdname,$link);
if(isset($_POST['enviar'])) {

$query = "SELECT * from $bd_tabla WHERE {$_POST['campo']} LIKE '%{$_POST['palabra']}%'";
$result = mysql_query($query,$link);

$found = false; // Si el query ha devuelto algo pondr&aacute; a true esta variable
while ($row = mysql_fetch_array($result)) {
$found = true;
echo "<p>";

foreach($row as $nombre_campo => $valor_campo) {



if(is_int($nombre_campo)) {

continue;
}

echo "<b>".$nombre_campo."</b> : ".$valor_campo."<br>";
}

echo "</p>";

}

if(!$found) {

echo "No se encontr&oacute; la palabra introducida";

}

}
?>

Lo que yo quiero, es realizar un busqueda con varios campos, y no como esto...

E intentado con asp, pero tampoco me sale... Estoy muy apurado... ojala y puedan ayudarme... gracias...