Foros del Web » Programando para Internet » PHP »

Problema con buscador y rows en una table de mysql

Estas en el tema de Problema con buscador y rows en una table de mysql en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/06/2011, 12:47
 
Fecha de Ingreso: junio-2011
Mensajes: 92
Antigüedad: 12 años, 10 meses
Puntos: 3
Problema con buscador y rows en una table de mysql

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.
  #2 (permalink)  
Antiguo 07/06/2011, 13:11
 
Fecha de Ingreso: junio-2011
Mensajes: 92
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Problema con buscador y rows en una table de mysql

Nadie sabe? Es urgente
  #3 (permalink)  
Antiguo 07/06/2011, 13:14
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Problema con buscador y rows en una table de mysql

es que es mucho codigo para procesar, te agredecemos que nos diga las dudas y te decimos como resolverla genericamente y ya después lo aplicas a tu caso y de paso aprendes..., dale te esperamos
  #4 (permalink)  
Antiguo 07/06/2011, 13:22
 
Fecha de Ingreso: junio-2011
Mensajes: 92
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Problema con buscador y rows en una table de mysql

el problema exacto esta en el select
<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>
Si yo pongo eso me funciona bien, pero yo intento, que, conservando el value, en lugar de que el select diga el nombre de los rows, ya que son nombres tipo name1, name2, ussmail, quiero que aparezca como yo quiera.

Actualmente si despliego ese select, me dice
id
username
website
name1
name2
ussmail
avatar

y yo quiero que diga

Usuario
Nombre
Sitio Web
Apodo
Raza
Avatar
  #5 (permalink)  
Antiguo 07/06/2011, 13:27
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Problema con buscador y rows en una table de mysql

si lo que quieres es el nombre de tus campos

mysql_field_name

pero si la tabla es tuya, para que te complicas, pon directamente los nombres, si ya los conoces
  #6 (permalink)  
Antiguo 07/06/2011, 13:27
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Problema con buscador y rows en una table de mysql

http://mx2.php.net/manual/en/functio...field-name.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Etiquetas: mysql, rows, table, buscadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:32.