Foros del Web » Programando para Internet » PHP »

mejores en buscador interno en la bd

Estas en el tema de mejores en buscador interno en la bd en el foro de PHP en Foros del Web. este es el codigo de mi buscador, pero tengo una pega como lo hago para que el buscador no lanze resultado haste que no se ...
  #1 (permalink)  
Antiguo 06/06/2004, 07:01
 
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 1 mes
Puntos: 0
mejores en buscador interno en la bd

este es el codigo de mi buscador, pero tengo una pega como lo hago para que el buscador no lanze resultado haste que no se le introdusca el nombre de alguien. y si no introdusco nada que salga por ejemplo: debes de introducir algun nombre.

esque con este buscador cuando tiene la casilla en blanco me muestra todo los registros.

<html>
<head>
<title>Buscador de Cliente </title>
</head>
<body>

<?php
include ("includes/config.php");
include ("includes/funciones.php");
include ("includes/link4.html");
?>
<br><br><br><br><br><br><br><br><br><br>
<table width="90%" border="1" bordercolor="white" cellpadding="1" cellspacing="0">
<tr>

<td BGCOLOR=#0000ff><b><font color=#00ffff>NOMBRE</font></b></td>
<td colspan="4"align="center"BGCOLOR="black" ><b><font color=#c0c0c0>ACCION</font></b></td>
</tr>
<?
$cnx = conectar ();
if (!$cnx){
echo ("<p>No es posible establecer conexion"."con el servidor. Intentelo de nuevo.</p>");
exit ();
}
if (!@mysql_select_db("$DATABASE") ){
echo ("<p>No es posible establecer base de dato.</p>");
exit ();
}
?>
<p> Introduce el nombre del cliente a buscar:

<?php
$result = "select idcliente, nombreempresa from clientes where nombreempresa like '%$busca%'";
$res= mysql_query($result) or die (mysql_error());
if (!result) {
echo ("<p> performing query: ". mysql_error () ."</p>");
exit ();
}

while ($row = mysql_fetch_array ($res)) {
echo "<tr><td BGCOLOR=#0000ff ><b><font color=#00ffff>" .$row["nombreempresa"]."</font></b></td>\n";
echo "<td BGCOLOR=#00ffff><a href='nuevopartecliente.php?idcliente=" .$row["idcliente"]."'><b><font color=#c0c0c0>nuevo parte</font></b></a></td>\n";
echo "<td BGCOLOR=#00ffff><a href='vercliente.php?idcliente=" .$row["idcliente"]."'><b><font color=#c0c0c0>ver datos del cliente</font></b></a></td>\n";
echo "<td BGCOLOR=#00ffff><a href='verpartecliente.php?idcliente=" .$row["idcliente"]."'><b><font color=#c0c0c0>ver partes</font></b></a></td>\n";

}
$busca=0

?>
<form action="<?=$PHP_SELF?>" method="post" >
Comunidad: <input type="text" name="busca" size="20" MAXLENGTH="60" /> </br>
<input type="submit" name="submit" valvue="BUSCA" />
</P>

</form>
</body>
</html>
  #2 (permalink)  
Antiguo 06/06/2004, 08:44
 
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 1 mes
Puntos: 0
ya lo tengo pongo la solucion que he realizado, he creado un formulario con una caja de texto a la cual le asigno una variable ($nombre), y la tramsporto esa variable a traves de mi formulario haste el codigo anterior y modificando en like %busca% lo cambio y pongo like %$nombre% todo de maravilla.

POr fin voy solucionando pequeñas pegas yo solito y todo gracias a esto foro, muchisimas gracias a todos
  #3 (permalink)  
Antiguo 06/06/2004, 08:54
 
Fecha de Ingreso: noviembre-2003
Mensajes: 78
Antigüedad: 20 años, 4 meses
Puntos: 2
famp,

Recuerda siempre escapar las variables que vas a utilizar en MySQL, sobre todo si provienen desde el usuario.

Como mínimo, utiliza la función addslashes() de PHP sobre aquellas variables que vas a incluir en la consulta.

Suerte!
__________________
Joel A. Chornik
ELSERVER.COM - WebHosting Profesional
  #4 (permalink)  
Antiguo 06/06/2004, 15:54
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
muy buen punto el que trata joel. un consejillo seria que icieras una validacion en javascript puede ser tan simple como esto


antes del formulario
<script language="javascript">
function valida(form){
busca = form.busca.value;
if(busca.length == 0){
alert("Error: escribe tu busqueda");
form.busca.focus();
return false;
}else{
return true;
}
</script>
en la linea
<form action="<?=$PHP_SELF?>" method="post" >
agregale el parametro onsubmit="return valida(this)"
  #5 (permalink)  
Antiguo 06/06/2004, 18:09
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Que tal Asi?

Asi tu buscador funcionar con 2 a mas palabras ;)

Código PHP:
<? 
$consulta
=$_POST['q']; 
$consulta=htmlentities($consulta); 
$consulta=split(' ',$consulta); 
$query "SELECT * FROM tabla WHERE "
for(
$a 0$a count($consulta); $a++){ 
if(
$consulta[$a] != ''){ 
if(
$a != 0){ $query .= ' OR '; } 
$query .= $campo." LIKE '%".$consulta[$a]."%'"


?>
Una idea para mejorar el buscador ;)
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #6 (permalink)  
Antiguo 09/06/2004, 15:23
 
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 1 mes
Puntos: 0
para joel_elserver como se hace esto:Recuerda siempre escapar las variables que vas a utilizar en MySQL, sobre todo si provienen desde el usuario.
  #7 (permalink)  
Antiguo 09/06/2004, 16:45
 
Fecha de Ingreso: noviembre-2003
Mensajes: 78
Antigüedad: 20 años, 4 meses
Puntos: 2
famp, la manera más sencilla si bien no la mejor para todos los casos es hacer:

$variable = addslashes($variable);

antes de utilizarla en cualquier consulta.

Saludos!
__________________
Joel A. Chornik
ELSERVER.COM - WebHosting Profesional
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 00:22.