Estimado,
Tengo un codigo de un buscador, funciona de maravilla. Pero cuando lista las opciones de buscar me pone los campos, por ejemplo id, compured, etc... Me gustaria que los campos fueran mas leibles, por ejemplo en vez de compured diga: Computador con Red. Me entiendes?. Mira te pego el codigo.
Lo que trato de decir que el buscador funciona de maravilla pero me copia y pega las tablas y yo quiero poder cambiarle esos nombres sin cambiar el nombre de las tabalas, te pego el codigo.
Código PHP:
<?
$bd_servidor = "localhost";
$bd_usuario = "root";
$bd_contrasenya = "";
$bd_bdname = "ctc";
$bd_tabla = "computadores"; // 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
///////////////////////////
?><style type="text/css">
<!--
body,td,th {
font-family: Verdana, Geneva, sans-serif;
font-size: xx-small;
color: #000;
}
-->
</style>
<center>
<p><h2>Introduzca el criterio de busqueda</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>
Criterio(s):
<input type="text" name="palabra" />
<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 encontro la palabra introducida";
}
}
?>