Foros del Web » Programando para Internet » PHP »

no puedo hacer que funcione un buscador

Estas en el tema de no puedo hacer que funcione un buscador en el foro de PHP en Foros del Web. Hola, ojala alguien me pueda ayudar. Quiero hacer un buscador interno en mi web (de hecho estoy aprendiendo a programar), pero me manda un error ...
  #1 (permalink)  
Antiguo 14/11/2008, 12:43
 
Fecha de Ingreso: noviembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
no puedo hacer que funcione un buscador

Hola, ojala alguien me pueda ayudar. Quiero hacer un buscador interno en mi web (de hecho estoy aprendiendo a programar), pero me manda un error a la hora de buscar y no se como arreglarlo. Mi codigo es el sig.

<?

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

$bd_servidor = "localhost";
$bd_usuario = "1";
$bd_contrasenya = "2";
$bd_bdname = "3";
$bd_tabla = "password"; // 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
///////////////////////////

?>

<center>
<p><h2>Introduce las palabras para la 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>
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";

}

}
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
</body>
</html>

Y EL ERROR QUE ME MARCA EN EL SERVIDOR ES:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/carvidin/public_html/buscador_generico.php on line 87
  #2 (permalink)  
Antiguo 14/11/2008, 13:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: no puedo hacer que funcione un buscador

Hola Rosillamoradilla,

Imprime el valor de mysql_error() para que veas el error con tu consulta.

Saludos.
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 17:36.