iarrieta
Usuario habitual
Usuario habitual

Hola:

Pues que llevo una eternidad tratando de completar un sencillo buscador interno para mi web y nada, el PHP no fue hecho para mi.

Por mas que me leo todos los manuales, bajo todos los scripts que gentilmente se comparten en los foros, el malnacido buscador no me sale.

Les coloqco el código completo a ver si alguien puede ayudarme:

El archivo config.php

<?
$bd_servidor = "localhost";
$bd_usuario = "XXXXXXX";
$bd_password = "XXXXXXX";
$bd_bdname = "XXXXXXXXXX";
$bd_tabla = "clientes";

$link = mysql_connect($bd_servidor,$bd_usuario,$bd_password);
mysql_select_db($bd_bdname,$link);

?>



El formulario de búsqueda

<form name="buscador" method="post" action="http://www.XXXXXX.com/buscador.php">
<input name="palabra" type="text" id="palabra" size="45" maxlength="30">
<input type="submit" name="Submit" value="Buscar">




El archivo buscador.php

<?php
include("config.php");
if($buscar) {//comprobamos que se haya pulsado el botón buscar
$resp = mysql_query("select * where nombre, direccion, telefono_uno, telefono_dos, email, url, zona, categoria 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 busqueda:<br><br>";
while($sql = mysql_fetch_array($resp)) {//imprimimos las respuestas
echo "-".$sql[nombre]."<b><br>";
echo "-".$sql[direccion]."<br>";
echo "-".$sql[telefono_uno]."<br>";
echo "-".$sql[telefono_dos]."<br>";
echo "-".$sql[email]."<b><br>";
echo "-".$sql[url]."<b><br>";
}
echo "<b>Ya no hay mas resultados</b>";
}
}
?>



Nota: en la sentencia SELECT*... los datos que allli aparecen son todos los campos de la tabla en mi BD

Avatar Image
@man / @woman
@man / @woman

¿Estas trabajando en local?

iarrieta
Usuario habitual
Usuario habitual

No, trabajo en servidor. Siempre cometo errores instalando PHP, Apache y demás en mi máquina asi que hago las pruebas directamente en mi servidor.

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por iarrieta
No, trabajo en servidor. Siempre cometo errores instalando PHP, Apache y demás en mi máquina asi que hago las pruebas directamente en mi servidor.


Perdón, pero me he perdido, me dices que trabajas en un servidor, pero después que has instalado Apache y PHP... entonces ¿estas en local? en local se entiendo cuando el servidor le montas en tu.

Primero debes comprobar si el servidor de mysql esta correcto.
iarrieta
Usuario habitual
Usuario habitual

Tengo un plan de hosting comprado en X sitio, alli me dan PHPMyAdmin preinstalado y con eso trabajo las bases de datos. En la carpeta principal, donde está el index.htm, el home.htm, etc tengo el archivo buscador.php, el config.php, etc

Como en mi maquina no he instalado el PHP, Apache, etc (trabajo con Dreamweaver MX), entonces trabajo el codigo y lo subo al servidor para poder ver los resultados.

Logro conectar a la base de datos pero no me arroja resultados. Se que sería más completo tener un archivo de paginación pero, si ni siquiera se hacer el buscador mucho menos puedo pensar en la paginacion.

Por ahora requiero hacer que el buscador funcione... luego pedire ayuda con la paginacion.

Avatar Image
@man / @woman
@man / @woman

La conexión te da... y "mysql_num_rows($resp)" te devuelve algo distinto de cero, haz un echo de lo que te devuelva:
$a=mysql_num_rows($resp);
echo $a;

A ver si tienes el problema antes de sacar los datos por pantalla o al sacarlos por la BD.


De todas formas, ahora que veo:
mysql_query("select * where nombre, dire.....

no pones en ningun lado de que tabla lo tiene que sacar...

mysql_query("select * FROM clientes where nombre, dire...

iarrieta
Usuario habitual
Usuario habitual

Ufffffffffffffffff!!!!!!!!!!

Clase de error...!!! No me di cuenta al llenar los datos del codigo.

Voy a corregirlo y probar.

Gracias.

iarrieta
Usuario habitual
Usuario habitual

Sigue sin funcionar... cuando ingresas por ejemplo Pampatar que es una zona en la tabla de mi BD, pasa a una página en blanco con esta direccion en la barra del explorer:

http://www.margaritaweb.net/buscador.php

pero totalmente en blanco, o sea, no da ningun resultado, ni positivo ni negativo...

El codigo del buscador.php corregido


<?php
include("config.php&quot;
if($buscar) {//comprobamos que se haya pulsado el botón buscar
$resp = mysql_query("SELECT * FROM clientes WHERE nombre, direccion, telefono_uno, telefono_dos, email, url, zona, categoria LIKE '%".$_POST[palabra]."%'&quot or die (mysql_error());//realizamos la consulta
if(mysql_num_rows($resp) == "0&quot {//comprobamos si hay respuestas
echo "No hay resultados";
} else {
echo "Estos son los resultados de la busqueda:<br><br>";
while($sql = mysql_fetch_array($resp)) {//imprimimos las respuestas
echo "-".$sql[nombre]."<b><br>";
echo "-".$sql[direccion]."<br>";
echo "-".$sql[telefono_uno]."<br>";
echo "-".$sql[telefono_dos]."<br>";
echo "-".$sql[email]."<b><br>";
echo "-".$sql[url]."<b><br>";
}
echo "<b>Ya no hay mas resultados</b>";
}
}
?>

iarrieta
Usuario habitual
Usuario habitual

Como no se nada de PHP, no entiendo esto:

"La conexión te da... y "mysql_num_rows($resp)" te devuelve algo distinto de cero, haz un echo de lo que te devuelva:
$a=mysql_num_rows($resp);
echo $a;

A ver si tienes el problema antes de sacar los datos por pantalla o al sacarlos por la BD."

iarrieta
Usuario habitual
Usuario habitual
Avatar Image
@man / @woman
@man / @woman

¿has copiado el código de algun sitio?

Revisalo...

De todas formas, antes del if pon un:
echo $resp;

Esto imprimiria el resultado de la consulta con la base de datos (BD), para ver si da en blanco o te da algo....

iarrieta
Usuario habitual
Usuario habitual

Lo coloque y nada, sigue sin funcionar



<?php
include("config.php");
if($buscar) {//comprobamos que se haya pulsado el botón buscar
$resp = mysql_query("SELECT * FROM clientes WHERE nombre, direccion, telefono_uno, telefono_dos, email, url, zona, categoria LIKE '%".$_POST[palabra]."%'") or die (mysql_error());//realizamos la consulta
echo $resp;
if(mysql_num_rows($resp) == "0") {//comprobamos si hay respuestas
echo "No hay resultados";
} else {
echo "Estos son los resultados de la busqueda:<br><br>";
while($sql = mysql_fetch_array($resp)) {//imprimimos las respuestas
echo "-".$sql[nombre]."<b><br>";
echo "-".$sql[direccion]."<br>";
echo "-".$sql[telefono_uno]."<br>";
echo "-".$sql[telefono_dos]."<br>";
echo "-".$sql[email]."<b><br>";
echo "-".$sql[url]."<b><br>";
}
echo "<b>Ya no hay mas resultados</b>";
}
}
?>

Avatar Image
@man / @woman
@man / @woman

A ver... cuando metes en el formulario una palabra ¿que sale? ¿no sale un error?

iarrieta
Usuario habitual
Usuario habitual

Nada, sale una página totalmente en blanco

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por iarrieta
Nada, sale una página totalmente en blanco



Creo que estas haciendo algo mal... tienes que tener una página html o php que sea el formulario ¿la tienes no? en el form tienes que llamar a buscador.php, este tener la conexión con la BD y el script.

Y para comprobar el funcionamiento siempre desde la página del formulario.
iarrieta
Usuario habitual
Usuario habitual

Lo tengo todo:

directorio.htm (el formulario de busqueda)
http://www.margaritaweb.net/directorio.htm

buscador.php (el que realiza la consulta y busqueda en BD) es el que te he pasado varias veces para revisar

config.php (incluido en buscador.php hace la conexion a la BD)

Avatar Image
@man / @woman
@man / @woman

Que raro.... ¿estas segura que admite php tu sitio?

Prueba a meter un echo "Hola"; al inici del script, antes de hacer el include, para ver si al menos eso sale...

Avatar Image
Usuario habitual
Usuario habitual

Prueva de reemplazar todos los " por ' menos los del hecho, ya que alo mejor le estas diciendo que el echo sea ""
Y por eso no enseña nada.

Codigo:
<?php
include("config.php";
if($buscar) {//comprobamos que se haya pulsado el botón buscar
$resp = mysql_query("SELECT * FROM clientes WHERE nombre, direccion, telefono_uno, telefono_dos, email, url, zona, categoria 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 busqueda:<br><br>";
while($sql = mysql_fetch_array($resp)) {//imprimimos las respuestas
echo "-".$sql[nombre]."<b><br>";
echo "-".$sql[direccion]."<br>";
echo "-".$sql[telefono_uno]."<br>";
echo "-".$sql[telefono_dos]."<br>";
echo "-".$sql[email]."<b><br>";
echo "-".$sql[url]."<b><br>";
}
echo "<b>Ya no hay mas resultados</b>";
}
}
?>

Si no, intenta descomponer el codigo y ves reconstruyendolo por pasos.
Primeramente conectate a tu base de datos y haz una query muy sencilla, tal que esta.
Codigo:

<?

include("config.php";

// querys
$resp = mysql_query("select * from clientes where nombre='$nombre'&quot ;
while($datos = mysql_fetch_array($resp)) {
//otro

echo "
- he encontrado este tio $datos[nombre]<br>
";

}
mysql_free_result($resp) ;
?>

entonces ejectuta www.margaritaweb.net/elarchivo.php?nombre=El nombre del chico.
Entonces en la pagina te saldra una lista de nombres asi
[quote]
- he encontrado este tio tio1
- he encontrado este tio tio1
- he encontrado este tio tio3
...
Y hasta que acabe. si esto te da resultado, esque tu SQL funciona y puedes seguir al paso dos que es hacer un formulario.
Si te funciona vuelve por aqui.
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares