Este es el código que encontre:
Código:
Pues ese es mi codigo, ysobre todo, quiero remarcar esta parte:<? // 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"; } } ?>
<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.