Foros del Web » Programando para Internet » PHP »

problema con este buscador

Estas en el tema de problema con este buscador en el foro de PHP en Foros del Web. bueno mi problema es el siguiente, tengo el directorio telefonico de mi ciudad en mysql y php, muy autoctono pero ahi lo termine de hacer, ...
  #1 (permalink)  
Antiguo 30/11/2004, 17:30
 
Fecha de Ingreso: octubre-2004
Ubicación: Ibague
Mensajes: 348
Antigüedad: 13 años, 2 meses
Puntos: 2
problema con este buscador

bueno mi problema es el siguiente, tengo el directorio telefonico de
mi ciudad en mysql y php, muy autoctono pero ahi lo termine de hacer,
pero ahora tengo un problema que para encontrar el nombre de alguien
tengo que colocar el nombre tal como esta, y resulta que en la base de
datos los nombres estan organizados de atras para adelante me explico,
yo me llamo jaime trujillo sanchez, alli en la base aparecen:
trujillo sanchez jaime.

ahora si le doy buscar "jaime trujillo" no me aparece el resultado
alguien me puede ayudar con esto... gracias.
  #2 (permalink)  
Antiguo 30/11/2004, 19:39
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 14 años, 11 meses
Puntos: 8
depende de como estan los campos en la db, es decir supongo (espero) tengas un campo nombre (Jaime) y otro apellido (trujillo sanchez), entonces lo que tenes que buscar es

"SELECT * FROM guia WHERE nombre LIKE '%Jaime%' AND apellido LIKE '%trujillo%' "

suerte
  #3 (permalink)  
Antiguo 01/12/2004, 05:57
 
Fecha de Ingreso: octubre-2004
Ubicación: Ibague
Mensajes: 348
Antigüedad: 13 años, 2 meses
Puntos: 2
este es el nuevo codigo


<html>
<head>
<title>Services</title>

</head>
<body bgcolor=white onload="document.search.nombre.focus();">
<form action=searchservices.php method=GET name=search>
Resultados de su Busqueda
<table>
<tr>
<td>Busqueda
<td><input type=text name=nombre size=25 maxlength=100 value="<?php echo "$nombre";?>">

<td><input type=submit value=Buscar><td>
</tr>
</table>
</form>
<?php

include("settings.php3");

$db = mysql_connect("$dbhost", "$dblogin", "$dbpass");



mysql_select_db("$dbname",$db);



$result = mysql_query("SELECT * FROM services WHERE nombre LIKE '%$nombre%' or ciudad LIKE '%$nombre%' or barrio LIKE '%$nombre%'",$db);
$alternate = "2";
$num_rows = mysql_num_rows($result);
echo "<table width=100%><tr><td><b><font size=+2>Las Paginas Blancas de Ibague</font></td><td align=right>Mostrando $num_rows resultados</td></tr></table><hr>";
while ($row = mysql_fetch_array($result)) {
$field1 = $row["nombre"];
$field2 = $row["direccion"];
$field3 = $row["ciudad"];
$field4 = $row["state"];
$field7 = $row["zip"];
$field5 = $row["telefono"];
$field6 = $row["picture"];
if ($field6 == "")
{
$alternate = "2";
}
$centerthis = "<td align=center width=50%>$field6</center></td>";
if ($field6 == "")
{
$centerthis = "<td>&nbsp;</td>";
}

if ($alternate == "1") {
$color = "<table width=100%><tr><td align=center>$field6</center></td><td align=left width=50%><center><font size='+1'><b>$field1</b><br>$field2<br>$field3,&nbsp;&nbsp;$field4&nbsp; $field7<br>$field5</font></td></tr></table><hr>";
$alternate = "2";
}
else {
$color = "<table width=100%><tr><td align=center><center><font size='+1'><b>$field1</b><br>$field2<br>$field3,&nbsp;&nbsp;$field4&nbsp; $field7<br>$field5</font></td>$centerthis</tr></table><hr>";
$alternate = "1";
}
echo "$color";
}
echo "</table>";

?>

<hr>

<center>
<strong><a href="http://www.hiperibague.com">WWW.HIPERIBAGUE.COM</a></strong>
</center>
</body>
</html>

Última edición por tolired; 03/12/2004 a las 10:28 Razón: cambie el codigo
  #4 (permalink)  
Antiguo 01/12/2004, 12:45
 
Fecha de Ingreso: octubre-2004
Ubicación: Ibague
Mensajes: 348
Antigüedad: 13 años, 2 meses
Puntos: 2
por favor nadie sabe porque esta mal?

ahora otra pregunta, que le agrego para que me pagine los resultados?

gracias a la persona que me pueda ayudar
  #5 (permalink)  
Antiguo 01/12/2004, 13:52
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 14 años, 11 meses
Puntos: 8
Código PHP:
$result mysql_query("SELECT * FROM services WHERE company LIKE '%$company%' or address LIKE '%$company%' or city LIKE '%$company%' or phone LIKE '%$company%' or keywords LIKE '%$company%' ORDER BY picture DESC",$db); 
puede ser porque usas la variable $company, en todos lados?
y ademas no se ve en ningun lugar que valor tiene company, estas usando varibles globales?
  #6 (permalink)  
Antiguo 03/12/2004, 10:30
 
Fecha de Ingreso: octubre-2004
Ubicación: Ibague
Mensajes: 348
Antigüedad: 13 años, 2 meses
Puntos: 2
bueno ahjora tengo un problema, resulta que con solo meter una letra en el buscador de una vez me muestra todos los registros de la base de dats, como puedo limitar esto? es decir que como minimo tengan que ingresar 3 o 4 letras para hacer la busqueda, la direccion del buscador es: www.amarillasibague.com/directorio gracias a las personas que me puedan ayudar.

P.D: el codigo actualizado del buscador esta unos mensajes arriba.
  #7 (permalink)  
Antiguo 03/12/2004, 10:37
Avatar de futilidad  
Fecha de Ingreso: julio-2002
Mensajes: 388
Antigüedad: 15 años, 5 meses
Puntos: 0
Código PHP:
if ((strlen($buscar))<3) {
echo 
"Por favor ingrese mas de tres digitos para la busqueda";
} else {
Realizando la busqueda

Mediante el condicional IF y la funcion STRLEN para contar el numero de caracterres de una cadena te debe de funcionar bastante bien,
saludos
  #8 (permalink)  
Antiguo 03/12/2004, 11:12
 
Fecha de Ingreso: octubre-2004
Ubicación: Ibague
Mensajes: 348
Antigüedad: 13 años, 2 meses
Puntos: 2
donde coloco esta sentencia? gracias y perdonen tanta molestia
  #9 (permalink)  
Antiguo 03/12/2004, 17:01
 
Fecha de Ingreso: octubre-2004
Ubicación: Ibague
Mensajes: 348
Antigüedad: 13 años, 2 meses
Puntos: 2
por favor una ayudadita, ya me volvi cibermendigo.
  #10 (permalink)  
Antiguo 04/12/2004, 00:06
Avatar de futilidad  
Fecha de Ingreso: julio-2002
Mensajes: 388
Antigüedad: 15 años, 5 meses
Puntos: 0
Mirando tu codigo te hago las siguientes recomendaciones, siguiendo mas o menos esta estructura.

1.- Recibe las variables que se utilizan para la busqueda desde el formulario.
2.- Comprueba que estas no esten vacias.
3.- Comprueba que estas tienen numero de caracteres minimos que estableces.
4.- Ejecuta la consulta.

Ejemplo:



Código PHP:
// recibo las variables desde el formulario por el metodo que se enviaron, en este ejemplo utilizare el metodo POST
$buscar $_POST[busqueda];

/* empezamos con distintas condicionales para verificar que la busqueda se realice como queramos */

// verificamos que las variables llegen y este definidas
IF (!isset($busqueda)) {
// en este caso las variables no llegaron y cancelamos el script
echo "Debe de escribir palabras para relizar la busqueda";
exit;
} ELSEIF ((
strlen($busqueda))<3) {
// en este caso el texto de busqueda es menor que tres caracteres y se cancela el script
echo "Debe de escribir mas de tres letras para relizar la busqueda";
exit;
} else {
// Si todas las anteriores condiciones no se cumplen entonces ejecutamos las consulta, mete aqui todo el codigo relacionado con esta
$db mysql_connect("$dbhost""$dblogin""$dbpass");
mysql_select_db("$dbname",$db);


Espero que te resulte esto util, ten paciencia ya te saldra, recuerda que php siempre te tira la linea en donde se encuentra cualquier error
  #11 (permalink)  
Antiguo 05/12/2004, 20:48
 
Fecha de Ingreso: octubre-2004
Ubicación: Ibague
Mensajes: 348
Antigüedad: 13 años, 2 meses
Puntos: 2
no he podido solucionar este problema por favor entiendan que soy bien nuevo en esto, donde deberia pegar este codigo, por favor algun alma caritativa que me ayude gracias.
  #12 (permalink)  
Antiguo 05/12/2004, 22:50
Avatar de futilidad  
Fecha de Ingreso: julio-2002
Mensajes: 388
Antigüedad: 15 años, 5 meses
Puntos: 0
Si ya se que eres nuevo, pero trato de ayudarte no dandote el codigo sino orientandote, el caso es que te ezfuerces y aprendas poco a poco php, lee el manual de php y te sera mas facil comprender esto, ademas estudia como se comportan otros scripts para que veas como se realizan.
Se paciente y ve poco a poco, la verdad muchos no estan interesados a resolverte los codigos (yo entre ellos), sino, a ayudarte a que aprendas

saludos

Última edición por futilidad; 05/12/2004 a las 22:52
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 14:42.