Foros del Web » Programando para Internet » PHP »

buscador PHP MSSQL

Estas en el tema de buscador PHP MSSQL en el foro de PHP en Foros del Web. alguien me puede ayudar para acer un pequeño buscador de palabras clave en una tabla de Mssql? gracias...
  #1 (permalink)  
Antiguo 14/06/2007, 16:55
Avatar de r4i4n  
Fecha de Ingreso: junio-2007
Ubicación: cancun
Mensajes: 2
Antigüedad: 16 años, 10 meses
Puntos: 0
buscador PHP MSSQL

alguien me puede ayudar para acer un pequeño buscador de palabras clave en una tabla de Mssql?
gracias
  #2 (permalink)  
Antiguo 14/06/2007, 19:34
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: buscador PHP MSSQL

ejemplo de lo que quieres?

saludos
__________________
http://www.rollermountain.com
  #3 (permalink)  
Antiguo 15/06/2007, 10:34
 
Fecha de Ingreso: junio-2007
Mensajes: 8
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: buscador PHP MSSQL

Hola, este tutorial te explica como hacer un buscador, espero les sea util.

Vamos a ver una aplicación, un ejemplo, de todo lo visto hasta ahora. Escribiremos un script que sirva para buscar una determinada cadena (que recibiremos de un formulario, y la almacenamos en la variable $buscar), dentro de nuestra base de datos, concretamente dentro del campo "nombre".

campo "nombre".

En primer lugar escribiremos el texto HTML de la página web que nos servirá como formulario de entrada, la llamaremos formulario.htm.

Formulario entrada

Código HTML:
<html>
<body>
<form method = "POST" action = "tuservidor/php/buscador.php3">
<strong>Palabra clave:</strong>
<input type="text" name="buscar" size="20"><br><br>
<input type="submit" value="Buscar">
</form>
</body>
</html> 
El siguiente script de busqueda lo llamaremos buscador.php3, y será el encargado de hacer la búsqueda en la BD, y devolver por pantalla los registros encontrados.

Script búsqueda

Código PHP:
<html> 
<body>
<?php
if (!isset($buscar)){ 
  echo 
"Debe especificar una cadena a buscar"
  echo &
quo 
  
echo "<p>Debe especificar una cadena a buscar</p> \n";
  echo 
"<p><a href=buscador_bd.htm>Volver</p> \n";  
  echo 
"</html></body> \n"
  exit; 

$link mysql_connect("localhost""nobody"); 
mysql_select_db("mydb"$link); 
$sql "SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre"
$result mysql_query($sql$link); 
if (
$row mysql_fetch_array($result)){ 
  echo 
"<table border = '1'> \n"
  
//Mostramos los nombres de las tablas 
  
echo "<tr> \ndigo" style="margin-left: 50">echo "<tr> \n"
  
mysql_field_seek($result,0); 
  while (
$field mysql_fetch_field($result)){ 
    echo 
"<td><b>$field->name</b></td> \n"
  } 
  echo 
"</tr> \n"
  do { 
    echo 
"<tr> \n"
    echo 
"<td>".$row["id"]."</td> \n"
    echo 
"<td>".$row["nombre"]."</td> \n"
    echo 
"<td>".$row["direccion"]."</td> \n"
    echo 
"<td>".$row["telefono"]."</td> \n"
    echo 
"<td><a 
    href='mailto:" 
    
href='mailto:".$row["email"]."'>". 
    $row["
email"]."</a></tdn"; 
    echo "
</trn"; 
  } while ($row = mysql_fetch_array($result)); 
       echo "
<p><a href=buscador_bd.htm>Volver</pn"; 
       echo "
</tablen"; 
} else { 
  echo "
<p>¡No se ha encontrado ningún registro!</p>n"; 
  echo "
<p><a href=buscador_bd.htm>Volver</pn"; 
  } 
?>
</body>
</html>
Lo primero que comprobamos es que el contenido de la variable $buscar que recibimos del la página web formulario.htm no es una cadena vacia, y esto lo hacemos con la función isset() que devuelve 'falso' si la variable que recibe está vacia. A la función le anteponemos el signo admiración (!) que es equivalente a un NOT, para convertirlo en 'verdadero' en caso de que la variable esté vacia, y en es caso terminamos la ejecución del script con exit.

Lo más importante de este script, es sin duda la sentencia SQL que le enviamos al servidor MySQL, y más concretamente la condición que le imponemos, WHERE nombre LIKE '%$buscar%'. Con la sentencia LIKE buscamos cualquier ocurrencia de la cadena contenida en $buscar, mientras que con los signos de porcentaje (%) indicamos el lugar de la coincidencia, por ejemplo, si hubiesemos puesto nombre LIKE '%$buscar', buscariamos cualquier ocurrencia al final del campo"nombre", mientras que si hubiesemos puesto nombre LIKE '$buscar%', buscariamos cualquier ocurrencia al principio del campo "nombre".

Las últimas novedade que hemos incorporado, son las funciónes mysql_fetch_field(), con el que obtenemos información acerca de las caracteríticas de cada campo, como su nombre, tipo, longitud, nombre de la tabla que los contiene, etc. Pero para ejecutar la función anterior debemos colocar el puntero en el primer campo, y eso lo logramos con la función mysql_field_seek(), la cál mueve el puntero interno a la posición indicada.
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 07:30.