Foros del Web » Programando para Internet » PHP »

Código para buscador en varios campos

Estas en el tema de Código para buscador en varios campos en el foro de PHP en Foros del Web. Estoy utilizando este codigo pero no me funciona. Que puedo estar haciendo mal? Este es el buscador Código PHP: <HTML> <HEAD> <TITLE>Buscar.php</TITLE> </HEAD> <BODY> <div align="center"> ...
  #1 (permalink)  
Antiguo 17/03/2004, 21:18
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
Código para buscador en varios campos

Estoy utilizando este codigo pero no me funciona. Que puedo estar haciendo mal?

Este es el buscador

Código PHP:
<HTML>
<HEAD>
<TITLE>Buscar.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Buscar un libro en la Base de Datos</h1>
<br>
<?
echo '<FORM METHOD="POST" FORM ACTION="resultados.php">';
?>
<br>
<b>Buscar por Título del Libro<b><br>
<INPUT TYPE="TEXT" NAME="titulo"><br>
<br>
<b>Buscar por Autor(es)<b><br>
<INPUT TYPE="TEXT" NAME="autor"><br>
<br>
<b>Buscar por Materia<b><br>
<INPUT TYPE="TEXT" NAME="materia"><br>
<br>
<b>Buscar por Colección<b><br>
<INPUT TYPE="TEXT" NAME="coleccion"><br>
<br>
<b>Buscar por ISBN<b><br>
<INPUT TYPE="TEXT" NAME="isbn"><br>
<br>
<b>Buscar por Fecha de Edición<b><br>
<INPUT TYPE="TEXT" NAME="fecha"><br>
<br>
<b>Buscar por Estado del Libro<b><br>
<INPUT TYPE="TEXT" NAME="estado"><br>
<br>
<br>
<INPUT TYPE="SUBMIT" value="Buscar">
</FORM>
<br>


</BODY>
</HTML>

Este es el script

Código PHP:
<?
//script made in ZONE WEB

//insertamos la configuracion
include "motor.php3";

//creamos la conexion a la base de datos
mysql_connect("$servidor_base","$nombre_base","$contrasena_base");

//recogemos la palabra clave y realizamos la busqueda
$query "SELECT * from $tabla";

// realizamos la consulta
$result mysql_db_query("$nombre_base"$query);
if (
$result) {
while (
$r mysql_fetch_array($result)) {
$titulo $r["titulo"];
$autor $r["autor"];
$materia $r["materia"];
$coleccion $r["coleccion"];
$isbn $r["isbn"];
$fecha $r["fecha"];
$estado $r["estado"];
//si se han encontrados resultados mostramos los resultados...pero nota
//si quieres mostrar contenido html que lleve comillas
//debes usar doble comilla por ejemplo <font color=""#000000""></font>
echo "<p>$url $nombre con numero $numero<br>$contenido</p>";

}
echo 
"<p>$titulo $autor $materia $coleccion $isbn $fecha $estado<p>";
}
// si no hay resultados le mandamos el mensaje de error
else {
echo 
"No se encontraron resultados.<br>";
}

?>

Y este el ejecutor

Código PHP:
<?
//script made in ZONE WEB
//indica aqui el nombre del servidor donde esta la base de datos...
$servidor_base="localhost";

//ingresa el nombre de usuario de la base de datos
$nombre_base="xxxxxx";

//ingresa la contraseña de la base de datos
$contrasena_base="xxxxxxx";

//ingresa el nombre de la tabla donde quieres realizar la busqueda
$tabla="xxxxxx";
?>
  #2 (permalink)  
Antiguo 17/03/2004, 21:43
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años, 7 meses
Puntos: 1
bueno lo que te haria falta es darle unas directivas de busqueda a tu tabla

aqui te dejo un ejmeplo que tienes de completar , pero creo que es mas o menos el sistema

a verqeu tal

Código PHP:
  // lo que haces es decirle que si han puesto algo en el titulo que busque tambien en el campo titulo
            // o que busque en el campo autor o en el campo materia todos los campos 

           
$titulo = (isset($_POST['titulo'])) ? " OR titulo = '".$_POST['titulo']."'"; : '';
           
$autor = (isset($_POST['autor '])) ? " OR autor  = '".$_POST['autor ']."'"; : '';
            
TODOS LOS CAMPOS
           
//etec etc
           
           // si no llega nada pues se para el script y pone un avios
           
           
if(!$titulo or !$autor or ....todos los campos que busques ) {
              echo 
"Debe entrar al menos una busqueda ";
              exit; 
                 
           }
      
           
$query "SELECT * from $tabla WHERE ".$titulo.$autor.$materia....... TODOS LOS CAMPOS CONCATENADOS;

 
// el resto mas o menos igual 
un saludo
  #3 (permalink)  
Antiguo 17/03/2004, 22:35
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
Muchas Gracias... voy a probarlo!
  #4 (permalink)  
Antiguo 18/03/2004, 08:07
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
probe hacer algunos cambios pero nada, no funciona (reconozco que seguro meti la pata al fondo).

asi quedo el codigo

Código PHP:
<?
//script made in ZONE WEB

//insertamos la configuracion
include "motor.php3";

//creamos la conexion a la base de datos
mysql_connect("$servidor_base","$nombre_base","$contrasena_base");

//recogemos la palabra clave y realizamos la busqueda
$query "SELECT * from $tabla WHERE titulo LIKE '%$titulo%' OR autor LIKE '%$autor%' OR materia LIKE '%$materia%' OR coleccion LIKE '%$coleccion%' OR isbn LIKE '%$isbn%' OR fecha LIKE '%$fecha%' OR estado LIKE '%$estado%'";

// realizamos la consulta
$result mysql_db_query("$nombre_base"$query);
if (
$result) {
while (
$r mysql_fetch_array($result)) {
$titulo = (isset($_POST['titulo'])) ? " OR titulo = '".$_POST['titulo']."'"; : '';
$autor = (isset($_POST['autor'])) ? " OR autor = '".$_POST['autor']."'"; : '';
$materia = (isset($_POST['materia'])) ? " OR materia = '".$_POST['materia']."'"; : '';
$coleccion = (isset($_POST['coleccion'])) ? " OR coleccion = '".$_POST['coleccion']."'"; : '';
$isbn = (isset($_POST['isbn'])) ? " OR isbn = '".$_POST['isbn']."'"; : '';
$fecha = (isset($_POST['fecha'])) ? " OR fecha = '".$_POST['fecha']."'"; : '';
$estado = (isset($_POST['estado'])) ? " OR estado = '".$_POST['estado']."'"; : '';
//si se han encontrados resultados mostramos los resultados...pero nota
//si quieres mostrar contenido html que lleve comillas
//debes usar doble comilla por ejemplo <font color=""#000000""></font>
echo "<p>$url $nombre con numero $numero<br>$contenido</p>";

}
echo 
"<p>$titulo $autor $materia $coleccion $isbn $fecha $estado<p>";
}
// si no hay resultados le mandamos el mensaje de error
else {
echo 
"No se encontraron resultados.<br>";
}

?>
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 13:01.