Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/03/2012, 06:04
ivancallejo
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscador Php + Mysql varios campos

Hola podrias poner el codigo que utilizaste para buscar por varios campos, es que yo tengo ese mismo codigo que tienes tu para buscar por un campo solo y no consigo hacer que aparezcan varios campos para buscar.
Muchas gracias.

El codigo que tengo es este.

Código PHP:
<?

//modifica estas variables según tu servidor de MySQL

$bd_servidor "d778.dinaserver.com";


$bd_usuario "simplemente";


$bd_contrasenya "australia";


$bd_bdname "camvue";


$bd_tabla "hoja1"// 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_contrasenya);

mysql_select_db($bd_bdname,$link);

////////////////////////////
 // Formulario
 ///////////////////////////

?>

<center>
 <p><h2>Introduce las palabras para la búsqueda</h2></p>
 <p><form name="buscador" method="post" action="buscador_generico.php"><br>
 Buscar en:
 <select name="campo">
 <?php

//Con este query obtendremos los campos por los cuales el usuario puede buscar

$result mysql_query("SHOW FIELDS FROM `$bd_tabla`",$link);

while(
$row mysql_fetch_row($result)) {

// en $row[0] tenemos el nombre del campo
 // de esta manera no necesitamos conocer el nombre de los campos
 // por lo que cualquier tabla nos valdrá

?>
 <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></p>
 </center>

<?

////////////////////////////
 // Proceso del Formulario
 ///////////////////////////

if(isset($_POST['enviar'])) {

 
// Solo se ejecuta si se ha enviado el formulario

 
$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á a true esta variable

 
while ($row mysql_fetch_array($result)) {

 
$found true;

 echo 
"<p>";

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

 
// Tenemos que mostrar todos los campos de las filas donde se haya
 // encontrado la búsqueda.


 
if(is_int($nombre_campo)) {

 continue; 
//Cuando hacemos mysql_fetch_array, php genera un array
 // con todos los valores guardados dos veces, uno con
 // índice numérico y otro con índice el nombre del campo.
 // Solo nos interesa el del nombre del campo.

 
}

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

 echo 
"</p>";

 }

 if(!
$found) {

 echo 
"No se encontró la palabra introducida";

 }

}
 
?>


y lo que me sale es una lista desplegable para seleccionar un campo y buscar por ese campo, yo lo que quiero es que me aparezcan todos los campos y buscar por uno o por varios.
Muchas gracias

Última edición por ivancallejo; 13/03/2012 a las 06:16