Pues, el caso es que tengo un buscador, pero no consigo dejarlo como yo quiero.
Este es el código que encontre:
Código:
<?
// Buscador para tablas MySQL escrito en PHP. Por Alex para www.webtaller.com
// Creado el 13-10-2003
////////////////////////////
// Configuración
///////////////////////////
//modifica estas variables según tu servidor de MySQL
$bd_servidor = "localhost";
$bd_usuario = "lalala";
$bd_contrasenya = "jajaja";
$bd_bdname = "basededatosXD";
$bd_tabla = "tabla_xd"; // 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.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[name2]; ?>">Objeto en Venta</option>
<option value="<?php echo $row[username]; ?>">Usuario</option>
<?php
}
?>
</select>
Palabra(s): <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>".$nombre_campo."</b> : ".$valor_campo."<br>";
}
echo "</p>";
}
if(!$found) {
echo "No se encontró la palabra introducida";
}
}
?>
Pues ese es mi codigo, ysobre todo, quiero remarcar esta parte:
<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[name2]; ?>">Objeto en Venta</option>
<option value="<?php echo $row[username]; ?>">Usuario</option>
<?php
}
?>
</select>
el caso es que en el select quiero que aparezcan las opciones usuario y objeto en venta, y que estas se correspondan con los campos username y name2 de la tabla "table_users" de mi DB.
Al escibir así el codigo, en lugar de aparecer esas dos opciones, aparecen 7 opciones que dicen objeto en venta y 7 que dicen usuario
deduje que aparecen 7 ya que son los campos que contiene mi tabla ._.
Alguien sabe como solucionar el problema?
PD: Probé agregando "" a los $row[] pero nada.
Si pongo solo una opcion con el value $row[
0] si me funciona el buscador, pero las opciones son 7 y cada una recibe el nombre del campo, sin poder yo escoger.