Foros del Web » Programando para Internet » PHP »

Buscador php no toma datos

Estas en el tema de Buscador php no toma datos en el foro de PHP en Foros del Web. Hola comunidad , hace rato que vengo trabajando y solucionando mis problemas gracias a ustedes , recien me acabo de registrar porque me parece uan ...
  #1 (permalink)  
Antiguo 12/03/2008, 10:51
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Buscador php no toma datos

Hola comunidad , hace rato que vengo trabajando y solucionando mis problemas gracias a ustedes , recien me acabo de registrar porque me parece uan comunidad barbara y he aprendido mucho gracias a ustedes , vengo con un problema que y ame canse de tocar codigo y ando medio mareado.

El asunto es este , tengo un buscador en mu web en php(modular) qu ebueno realiza busquedas en la base de datos mysql y devuelve resultados segun las palabras introducidas en el campo de texto , como cualquier buscador .

el problema es ? que siempre me devuelve , que debo introducir las palabras a buscar , es decir no me toma los datos , pienso que puede ser por las variables globales o algo asi , les dejo el codigo aver si me dan una manitop.

radiometal.com.ar/buscador.txt

El server esta con

register_globals Off



Espero que me puedan ayudar.

Saludos Coriales.

Última edición por EmaD; 12/03/2008 a las 11:16
  #2 (permalink)  
Antiguo 12/03/2008, 17:30
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

Alguien qu eme ayude
  #3 (permalink)  
Antiguo 12/03/2008, 22:34
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

pero muestra el script a ver por donde puede estar el problema

bueno ya lo vi

Última edición por jaronu; 12/03/2008 a las 22:49
  #4 (permalink)  
Antiguo 12/03/2008, 22:42
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

Mira no soy un experto ni mucho menos, pero el otro dia estuve liado haciendo un buscador a base de datos y una de las cosas que saque en claro es que con LIKE no se pueden hacer busquedas con mas de una palabra.

para hacer busquedas con mas de una palabra hay que hacerlo de esta forma:

Código PHP:
"SELECT * , MATCH(name, description) AGAINST ('$busqueda') as Score FROM descargas
                        WHERE MATCH (name, description) AGAINST ('$busqueda') ORDER BY Score ASC"


Hay que hacer las consultas a la BD con MATCH Y AGAINST.

Un saludo.
  #5 (permalink)  
Antiguo 12/03/2008, 23:32
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

Es que estaba andando y cambie de hosting y no funciono mas el buscador.

el script es este es ,medio largo y no me permite colocarlo entero se los dejo en este txt

Código:
www.radiometal.com.ar/buscador.txt
Y estaba funcionando de esta manera hasta que cambie de host, no me tira ningun error solo que siempre me advierte

Debe escribir las palabras que quiera buscar!

aunque coloque cualqueira claro

Salu2

Última edición por EmaD; 13/03/2008 a las 07:34
  #6 (permalink)  
Antiguo 13/03/2008, 08:48
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

parece que envias las variables mediante POST pero luego no las recoges.


Código PHP:
echo '<h1>'.MSG_buscar.'</h1>
<center><form name="form1" method="post" action="index.php?p=search&buscan=si">
<p>'
.MSG_buscar.':
<input type="text" name="elemabuscar" value="'
.$elemabuscar.'" size="50"><br>';
if (
$search_news == '1'){
echo 
'<input type="radio" name="tipo" value="noticias"> '.MSG_noticias.' ';}
if (
$search_articles == '1'){
echo 
'<input type="radio" name="tipo" value="articulos"> '.MSG_articulos.' ';}
if (
$search_biografias == '1'){
echo 
'<input type="radio" name="tipo" value="biografias"> '.MSG_biografias.' ';}
if (
$search_videos == '1'){
echo 
'<input type="radio" name="tipo" value="videos"> '.MSG_videos.' ';}
if (
$search_forum == '1'){
echo 
'<input type="radio" name="tipo" value="foro"> '.MSG_foro.' ';}
if (
$search_all == '1'){
echo 
'<input type="radio" name="tipo" value="todos" checked> '.MSG_todos.' ';}
echo 
'<input type="submit" name="Submit" value="'.MSG_buscar.'">
<br><br>
</form></center>'

$elemabuscar esta es una de las variables que mandas con POST y es la que usas en los query de estaforma:

Código PHP:

$consultatotal
="SELECT c.type_comment, c.idt, c.content, c.author, p.title, p.author, p.description, p.content, p.id FROM paws_comments c, paws_news p WHERE ((p.author LIKE '%".$elemabuscar."%') OR (p.title LIKE '%".$elemabuscar."%') OR (p.description LIKE '%".$elemabuscar."%') OR (p.content LIKE '%".$elemabuscar."%') OR (c.type_comment LIKE '%news%') and (c.content LIKE '%".$elemabuscar."%') or (c.author LIKE '%".$elemabuscar."%') AND(c.idt=p.id)) GROUP BY id"
pero si no has recogido las variables no hara nada el buscador, creo que deberias recoger todas la variables del form asi:


Código PHP:

$elemabuscar
=$_POST['elemabuscar']; 
  #7 (permalink)  
Antiguo 13/03/2008, 08:51
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

Es loq ue me imaginaba , gracias amigo , no quise tocar mucho porque ya me habia mareado , ahor apruebo y te chiflo.

Gracias nuevamente.

Salu2
  #8 (permalink)  
Antiguo 13/03/2008, 09:13
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

Bien ahora no tira la advertenica de la s palabras pero no busca nada .

Algun otro error ? las

CADENAS DE BUSQUEDA ESTAN BIEN DE ESA MANERA?

sALU2
  #9 (permalink)  
Antiguo 13/03/2008, 09:19
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

Ya te dije esto mas arriba.





Cita:
Iniciado por jaronu Ver Mensaje
Mira no soy un experto ni mucho menos, pero el otro dia estuve liado haciendo un buscador a base de datos y una de las cosas que saque en claro es que con LIKE no se pueden hacer busquedas con mas de una palabra.

para hacer busquedas con mas de una palabra hay que hacerlo de esta forma:

Código PHP:
"SELECT * , MATCH(name, description) AGAINST ('$busqueda') as Score FROM descargas
                        WHERE MATCH (name, description) AGAINST ('$busqueda') ORDER BY Score ASC"


Hay que hacer las consultas a la BD con MATCH Y AGAINST.

Un saludo.


Un saludo
  #10 (permalink)  
Antiguo 13/03/2008, 09:28
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

Como seria por ejemplo en mi caso.

Código PHP:
$consultatotal="SELECT p.title, p.author, p.description, p.content, p.id FROM paws_news p WHERE ((p.author LIKE '%".$elemabuscar."%') OR (p.title LIKE '%".$elemabuscar."%') OR (p.description LIKE '%".$elemabuscar."%') OR (p.content LIKE '%".$elemabuscar."%')) GROUP BY id"
Asi?

Código PHP:
"SELECT * , MATCH(p.title, p.author, p.description, p.content, p.id) AGAINST ('$busqueda') as Score FROM paws_news p WHERE MATCH (p.author LIKE '%".$elemabuscar."%') OR (p.title LIKE '%".$elemabuscar."%') OR (p.description LIKE '%".$elemabuscar."%') OR (p.content LIKE '%".$elemabuscar."%')) AGAINST ('$busqueda') ORDER BY Score ASC"

Es correcto asi? sino ayudame aunquesea ocn una luego las otras las modifico yo , pero para tener una referencia y ver como trabaja con match y against


Gracia snuevamente
  #11 (permalink)  
Antiguo 13/03/2008, 09:32
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

dime como se llama la tabla que quieres hacer la busqueda y los campos y te los pondre en un query
  #12 (permalink)  
Antiguo 13/03/2008, 09:36
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

seria una cosa asi:


Código PHP:

"SELECT * , MATCH(p.title, p.author, p.description, p.content, p.id) AGAINST ('$elemabuscar') as Score FROM paws_news 
                        WHERE MATCH (p.title, p.author, p.description, p.content, p.id) AGAINST ('$elemabuscar') ORDER BY Score ASC"


Y todos estos campos de la BD

p.title, p.author, p.description, p.content, p.id

Han de estar en el indice de la BD, vamos, que has de hacer un indice en la BD, ¿lo tienes hecho?
  #13 (permalink)  
Antiguo 13/03/2008, 09:37
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

La tabla se llama

para el caso de las noticias

paws_news


Los campos

comment
content
author
title
author
description
content
id

Eso en el caso de buscar noticias , para lso otros , deberia ser los mismo pero cambiando la tabla y lso campos .

Fijate en el scirpt , la evrda dme marea esta todo muy sucio y mezclado .

Código:
http://www.radiometal.com.ar/buscador.txt
te agradezco , la verdad muy buena onda.

Salu2
  #14 (permalink)  
Antiguo 13/03/2008, 09:41
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

Prueba asi:



Cita:
Iniciado por jaronu Ver Mensaje
seria una cosa asi:


Código PHP:

"SELECT * , MATCH(title, author, description, content, id) AGAINST ('$elemabuscar') as Score FROM paws_news 
                        WHERE MATCH (title, author, description, content, id) AGAINST ('$elemabuscar') ORDER BY Score ASC"


Y todos estos campos de la BD

p.title, p.author, p.description, p.content, p.id

Han de estar en el indice de la BD, vamos, que has de hacer un indice en la BD, ¿lo tienes hecho?
  #15 (permalink)  
Antiguo 13/03/2008, 09:47
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

Ufffff nop , lo raro es que no me muestra nada , es decir antes cuando no ecnontraba nada igualmente me mostraba que no se encontro nada .

Ya me esta desesperando



Salu2
  #16 (permalink)  
Antiguo 13/03/2008, 09:48
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

todos estos campos de la BD

p.title, p.author, p.description, p.content, p.id

Han de estar en el indice de la BD, vamos, que has de hacer un indice en la BD, ¿lo tienes hecho?
  #17 (permalink)  
Antiguo 13/03/2008, 09:55
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

En verdad no entiendo lo del indice de la BD.

Si em puedes aclarar , porque lei algo recien y no termino de entender de que se trata.

Se refiere a Indice osea del orden de los campos o a otra cosa?

SAlu2
  #18 (permalink)  
Antiguo 13/03/2008, 10:02
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

debarias preguntar en el foro de Base de datos, pero explico.

Con el phpMyadmin, cuando haces click en el menu de la izquierda en el nombre de la tabla, a la derecha aparecen los campos de esa tabla y debajo de estos te aparece un indice que se crea automaticamente con el campo que sea primary Key.

Y tienes un boton debajo para añadir mas campos al indice, añade los campos que quieras y en la opcion que te saldra del tipo de indice cambia el que esta que sera INDEX por TEXTFULL
y dale ha aceptar.

No se si ma habre explicado bien.

Una cosa, La tabla ha de ser del tipo MyISAM y no InnoDB.

Esque tampoco se si trabajas en local o en el server, pero lo que has de hacer en ambos casos es lo mismo.
  #19 (permalink)  
Antiguo 13/03/2008, 10:06
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

O.k y alo chekeo aver lo que dices.

Una pregunta , se supone que cuando cambie de hosting , y translade el backup completo de la base de datos "que antes funcoinaba el buscador" , nos e supone que tambien esos indices que dices tendrian que estar?

Osea la pregunat seria por que antes funcioanba perfecto y ahora no?

Lo de tomar la variable $ellemaabuscar esta solucoinado , y eso seria por los register globals si no me equivoco , pero lo de la BD y todo eso no entiendo.

Gracias cualqueiro cosa te chiflo , la evrdad que tenes mucha paciencia , y eso vale oro.

Salu2
  #20 (permalink)  
Antiguo 13/03/2008, 10:11
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

No se si al exportar la BD se mantienen los indices, pero si no se mantienen los vuelves ha crear otravez con phpMyadmin y ya esta.

pero puedes mirarlo al exportar la BD Mira en el archivo .sql si estan definidos los indices
y si no los creas despues de importarla.
  #21 (permalink)  
Antiguo 13/03/2008, 10:19
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

O.k veamos le doy al boton continuar para crear un indice



Y aca no se que poner




En nombre seria por ejemplo title o deberia ser p.title como esta en el buscador?

en tipo seria TEXTFULL


Y la tabla es de tipo MyIsam.

En campo y tamaño?

En campo tengo los campos de la tabla en la lista desplegable en tamaño cual seria ?

o eso no se toca?

Luego tendria que hacerlo con todos los campos que me mensionaste , auqnuesea uno de ejemplo y sigo sino termino haciendo cualquier cosa.


Gracias ,
  #22 (permalink)  
Antiguo 13/03/2008, 12:11
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: Buscador php no toma datos

antes de nada en la primera imagen selecciona el Nº de campos que quieres agregar la INDICE FULLTEXT, has puesto solo un campo, pon el numero que sean.

despues en la segunda imagen en CAMPO apareceran mas para seleccionar y vas seleccionando uno a uno los campos, en tamaño yo no he puesto nada, y el tipo es

Tipo de indice -->FULLTXT

y despues le das a grabar.
  #23 (permalink)  
Antiguo 16/03/2008, 01:17
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 11 años, 9 meses
Puntos: 2
Re: Buscador php no toma datos

Gracias Compañero , por el momento lo pude soluconar y est afuncionand ocomo antes , el problema estab atambien con qu eno tomaba la variable tipo de los radio

$tipo = $_POST['tipo'];

Pero efectivamente solo busca de a una palabras con LIKE, luego m epongo a programar nuevamente uno desde 0 con las consultas que me enseñaste y estub eleyendo lo de los indices , no termine de entender muy bien pero de a poco lo voyair haciendo con un poco de estudio, soy novato en php , me gusta , y a la web la llevo bastantebien pro el momento me las arreglo, por supuesto con la ayuda de gente como ustedes.

Salu2
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 22:43.