Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2009, 15:21
hollowmanf
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Ayuda con Codigo de un buscador

Hola amigos de forosdelweb, tengo una consulta para hacerles.

Baje por internet un codigo para realizar un buscador simple, la idea del buscador me gusta pero el problema es que este me lista todos los campos de una Tabla y yo necesitaria espercificar que solo busque en un solo campo de la tabla. El campo por el cual tengo que buscar es el de Dni, necesitaria si alguien me puede dar una mano con esto para ver como solucionarlo. Les dejo el codigo para que puedan saber de lo que estoy hablando.


<?
// Buscador para tablas MySQL escrito en PHP.
// Creado el 13-10-2003


////////////////////////////
// Configuración
///////////////////////////

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

$bd_servidor = "localhost";


$bd_usuario = "usuario";


$bd_contrasenya = "pass";


$bd_bdname = "nombredemidb";


$bd_tabla = "tablademidb"; // 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);

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

?>
<style type="text/css">
<!--
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
-->
</style>


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

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

$result = mysql_query("SHOW COLUMNS 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>
<span class="style1">Ingrese Valor (s) :</span>
<input type="text" name="palabra"><br>
<input type="submit" value="Enviar" 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><font face='Verdana'>".$nombre_campo."</b></font> : ".$valor_campo."<br>";
}

echo "</p>";

}

if(!$found) {

echo "No se encontró la palabra introducida";

}

}
?>[/PHP]


Salud2 y gracias de antemano