Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/01/2004, 16:18
Avatar de Gerald
Gerald
 
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 21 años, 8 meses
Puntos: 2
A ver..

Un ejemplo no recuerdo de donde lo saque

Código PHP:
formulario de buskeda
---------------------

<form action="buscador.php" method="post">
<input type="text" name="palabra">
<input type="submit" name="enviar" value="Buscar!">
</form>

config.php (El archivo de conexion a la bd)
----------

<?
$dbhost 
"localhost" ;
$dbuser "tu_usuario" ;
$dbpass "tu_passr" ;
$db "tu_bd" ;
$conectar mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db,$conectar) ;
?>

buscador.php
------------

1-realizas la conexion a la base de datos(config.php)
2-creas la siguiente sentencia sql:
$resp = mysql_query("select * from tabla where campo_en_el_k_buskar LIKE '%".$_POST[palabra]."%'") or die (mysql_error());

explicacion de la sentencia
---------------------------
1-bien es una sentencia facililla donde pone * , esto significa que escojes todos
  los campos de dixa tabla,si lo prefieres puedes elegir tus propios campos
2-cambias "tabla" por la tabla de la bd dond kieras buscar
3-Donde pone "campo_en_el_k_buskar" debes de poner el campo donde se realizaran las comprobaciones
  de coincidencia
4-¿Que significa LIKE? Pues like se puede usar de dos formas
4.0-Sintaxis de LIKE:
4.0.1- Campo_de_la_bd_donde_vas_a_buscar LIKE 'o%' ó '%o%'
4.1-campo LIKE '%hola%' esto lo k aria seria buscar cualkier coincidencia(exactamente
    lo k estamos aciendo aqui)
4.2-La segunda forma k se puede usar es esta campo LIKE 'o%', esto lo k
    aria seria buscar cualkier cadena k empezara por la
    letra o numero puesto
4-Con esto acabamos la sentencia y su explicacion

EXTRAER LOS DATOS
-------------------

Bien para esta tarea utilizaremos un bucle del tipo while
while(..) { 
//sentencias a ejecutar
}

Bien pongo el codigo desde el principio

BUSCADOR.PHP
------------
<?php
include("config.php");
if(
$enviar) {//comprobamos k se aya pulsao el enviar
$resp mysql_query("select campo/s from tabla where campo_en_el_k_buskar LIKE '%".$_POST[palabra]."%'") or die (mysql_error());//realizamos la consulta
if(mysql_num_rows($resp) == "0") {//comprobamos si hay respuestas
 
echo "No hay resultados";
} else {
echo 
"Estos son los resultados de la buskeda:<br>";
while(
$sql mysql_fetch_array($resp)) {//imprimimos las respuestas
  
echo "-".$sql[titulo]."<br>";
  }
echo 
"<b>Ya no hay mas resultados</b>";
}
}
?>

EXPLICACION
------------
-->Antes de nada hemos incluido el archivo de conexion a la base de datos
-->Bien lo primero k acemos es comprobar k an pulsado el submit en
el formulario.A continuacion creamos la sentencia sql para la buskeda
recuerda cambiarle "campo" tambien debes cambiar "tabla" y "campo_en_el_k_buskar".
-->Despues de esto esta la comprobacion de que se hayan devuelto respuestas y para eso utilizamos
 
mysql_num_rows()

y lo igualamos ha 0, si es igual ha 0 significa que no hay respuestas e imprimimos un mensaje advirtiendolo
-->Cerramos el if y abrimos un else para que en caso contrario haga lo que le ordenemos
-->Despues de eso usamos el echo pa indicar k komienzan las buskedas,
no se t okurra meterlo en el bucle ke viene a continuacion,
xk sino saldria esto:
Estos son los resultados de la buskeda:
buskeda
......
y asi asta k se acabaran las buskedas
-->Explikemos el while, en el bucle while lo k acemos es aplicarle
una variable($sql) a mysql_fetch_array k es el encargado de sacar los
datos en forma d array ($sql[campo_en_el_k_buskar])
-->Lo k viene despues es la impresion d los resultados obtenidos
Si te fijas ai algo raro como:

  echo "-".$....

Bien ¿que significa esto? pues estamos concatenando que es muxo mejor
a la hora d programar
-->Ahora ta lo importante:

$sql[campo_en_el_k_buskar]

---> campo_en_el_k_buskar <----
eso debes d cambiarlo x ejemplo si en la sentencia sql as puesto

mysql_query("select campo/s from tabla where titulo LIKE '%".$_POST[palabra]."%'")

Pues debes de cambiar lo de
---> campo_en_el_k_buskar <----
por titulo

-->A continuacion cerramos el bucle while e imprimimos un mensaje d k no existen mas resultados

-->Cerramos la llave del else

-->Despues cerramos el if abierto y ya ta exo el buscador interno

-->Para mejorarlo ya seria conveniente meterle una paginacion
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol