Foros del Web » Programando para Internet » PHP »

Duda buscador

Estas en el tema de Duda buscador en el foro de PHP en Foros del Web. Hola a todos!! Estoy modificando un buscador de un script... Tenemos esto al principio de la pagina... luego viene el head etc... Código PHP: <? ...
  #1 (permalink)  
Antiguo 06/01/2010, 13:18
 
Fecha de Ingreso: noviembre-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Duda buscador

Hola a todos!!
Estoy modificando un buscador de un script... Tenemos esto al principio de la pagina... luego viene el head etc...

Código PHP:
<?
include("include/session.php");
$url=explode("/",$_SERVER['REQUEST_URI']);
$tag=substr($url['2'],0,strlen($url['2'])-5);
$tag=str_replace("_"," ",$tag);
$tag=str_replace("-"," ",$tag);
$tag_explodat=explode(" ",$tag); ?>
Ahora el buscador...
Funcionasi buscas sólo el artista o sólo la canción por ejemplo si busco "alejandro sanz" si funciona bien. El problema viene cuando busco "alejandro sanz lookig for paradise" ahi ya no me da ningún resultado... no se que puedo hacer...
Gracias ;)

Código PHP:
<?php
include('include/connection.php');
        
//REZULTATE COMPLETE

    
$x=$tag_explodat[0];

$q="SELECT * FROM melodie WHERE activat='1' and melodie LIKE '%" $tag_explodat[0] . "%' or artist LIKE '%" $tag_explodat[0] . "%" ;        

$m=count($tag_explodat);
for (
$i=1$i<$m$i++)
{
    
$q=$q $tag_explodat[$i] . "%"
}
$q=$q "'";
$res=mysql_query($q) or die (mysql_error());
if(
mysql_num_rows($res)>0)
{
echo 
'    
    <tr class="last_text_tbl">
        <td width="35" align="center">Nr.</td>
        <td width="440" align="left"><strong> ' 
$tag ' </strong></td>
        <td width="45" align="center">Hits</td>
    </tr>'
;    
} else 
{
    echo 
' <tr>
    <td height="35" align="center" background="' 
$site ' img/bg-menu-dr-sg.gif" class="menu_dreapta">Lo sentimos, no se ha encontrado ningún resultado para: "' $tag '".</td>
  </tr>'
;
}
$i=1;
while (
$row=mysql_fetch_array($res))
{
    
$melodieurl=str_replace(" ","-",$row['melodie']);
    
$melodieurl=str_replace("'","-",$melodieurl);
    
$melodieurl=str_replace("`","-",$melodieurl);
    
$melodieurl=str_replace("[","",$melodieurl);
    
$melodieurl=str_replace("]","",$melodieurl);
    
$melodieurl=str_replace("(","",$melodieurl);
    
$melodieurl=str_replace(")","",$melodieurl);
    
$melodieurl=str_replace(",","-",$melodieurl);
    
$melodieurl=str_replace(".","-",$melodieurl);
    
$melodieurl=str_replace(":","-",$melodieurl);
    
$melodieurl=str_replace(";","-",$melodieurl);
$melodieurl=str_replace("?","",$melodieurl);
$melodieurl=str_replace("!","-",$melodieurl);
    
$melodieurl=str_replace("&","",$melodieurl);
$melodieurl=str_replace("@","",$melodieurl);
    
$melodieurl=str_replace("*","",$melodieurl);
    
$melodieurl=str_replace("^","",$melodieurl);
    
$melodieurl=str_replace("%","",$melodieurl);
    
$melodieurl=str_replace("#","",$melodieurl);
    
$melodieurl=str_replace("=","",$melodieurl);
    
$melodieurl=str_replace("+","-",$melodieurl);
    
$melodieurl=str_replace("<","",$melodieurl);
    
$melodieurl=str_replace(">","",$melodieurl);
    
$melodieurl=str_replace("|","",$melodieurl);
    
$melodieurl=str_replace("{","",$melodieurl);
    
$melodieurl=str_replace("}","",$melodieurl);
    
$melodieurl=str_replace("\"","",$melodieurl);
    
$melodieurl=str_replace("/","",$melodieurl);
    
$melodieurl=str_replace("~","-",$melodieurl);
        
$melodieurl=str_replace("é","e",$melodieurl);
    
$melodieurl=str_replace("á","a",$melodieurl);
    
$melodieurl=str_replace("ó","o",$melodieurl);
    
$melodieurl=str_replace("Ã*","i",$melodieurl);
    
$melodieurl=str_replace("ú","u",$melodieurl);
    
$melodieurl=str_replace("ñ","n",$melodieurl);    
    
$melodieurl=str_replace("é","e",$melodieurl);
    
$melodieurl=str_replace("á","a",$melodieurl);
    
$melodieurl=str_replace("ó","o",$melodieurl);
    
$melodieurl=str_replace("í","i",$melodieurl);
    
$melodieurl=str_replace("ú","u",$melodieurl);
    
$melodieurl=str_replace("ñ","n",$melodieurl);
    
$melodieurl=str_replace("Ñ","N",$melodieurl);
    
$melodieurl=str_replace("ç","c",$melodieurl);
    
$melodieurl=str_replace("´","-",$melodieurl);
    
$melodieurl=str_replace("è","e",$melodieurl);
    
    
$artisturl=str_replace(" ","-",$row['artist']);
    
$artisturl=str_replace("'","-",$artisturl);
    
$artisturl=str_replace("`","-",$artisturl);
    
$artisturl=str_replace("[","",$artisturl);
    
$artisturl=str_replace("]","",$artisturl);
    
$artisturl=str_replace("(","",$artisturl);
    
$artisturl=str_replace(")","",$artisturl);
    
$artisturl=str_replace(",","-",$artisturl);
    
$artisturl=str_replace(".","-",$artisturl);
    
$artisturl=str_replace(":","-",$artisturl);
    
$artisturl=str_replace(";","-",$artisturl);
$artisturl=str_replace("?","",$artisturl);
$artisturl=str_replace("!","-",$artisturl);
    
$artisturl=str_replace("&","",$artisturl);
$artisturl=str_replace("@","",$artisturl);
    
$artisturl=str_replace("*","",$artisturl);
    
$artisturl=str_replace("^","",$artisturl);
    
$artisturl=str_replace("%","",$artisturl);
    
$artisturl=str_replace("#","",$artisturl);
    
$artisturl=str_replace("=","",$artisturl);
    
$artisturl=str_replace("+","-",$artisturl);
    
$artisturl=str_replace("<","",$artisturl);
    
$artisturl=str_replace(">","",$artisturl);
    
$artisturl=str_replace("|","",$artisturl);
    
$artisturl=str_replace("{","",$artisturl);
    
$artisturl=str_replace("}","",$artisturl);
    
$artisturl=str_replace("\"","",$artisturl);
    
$artisturl=str_replace("/","",$artisturl);
    
$artisturl=str_replace("~","-",$artisturl);
        
$artisturl=str_replace("é","e",$artisturl);
    
$artisturl=str_replace("á","a",$artisturl);
    
$artisturl=str_replace("ó","o",$artisturl);
    
$artisturl=str_replace("Ã*","i",$artisturl);
    
$artisturl=str_replace("ú","u",$artisturl);
$artisturl=str_replace("ñ","n",$artisturl);    
$artisturl=str_replace("é","e",$artisturl);
    
$artisturl=str_replace("á","a",$artisturl);
    
$artisturl=str_replace("ó","o",$artisturl);
    
$artisturl=str_replace("í","i",$artisturl);
$artisturl=str_replace("ú","u",$artisturl);
    
$artisturl=str_replace("ñ","n",$artisturl);
    
$artisturl=str_replace("Ñ","N",$artisturl);
$artisturl=str_replace("ç","c",$artisturl);
    
$artisturl=str_replace("´","-",$artisturl);
    
$artisturl=str_replace("è","e",$artisturl);
    
$data=explode(" ",$row['data_ad']);
    
$data=explode("-",$data['0']);
    echo 
"<tr class='last_link'>
                <td height='20' width='35' align='center'>" 
$i "</td>
                <td height='20' width='440' align='left'>
                    <a href='$site/" 
$artisturl "---" $melodieurl "_" $row['id'] . ".html' title='" $row['melodie'] . "' >" $row['artist'] . " - " $row['melodie'] . "</a></td>

                <td height='20' width='45' align='center'>" 
$row['hits'] . "</td>
</tr>

    "

    
$i++;
}
?>
  #2 (permalink)  
Antiguo 07/01/2010, 09:12
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Duda buscador

hace antes de la consulta
un str_remplace(" ","%",$tag_explodat[0]);

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 08/01/2010, 07:48
 
Fecha de Ingreso: noviembre-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Duda buscador

Cita:
Iniciado por Hidek1 Ver Mensaje
hace antes de la consulta
un str_remplace(" ","%",$tag_explodat[0]);

saludos!
no se a que me ayudaria eso...
no se si has entendido mi duda :|
el problema que tengo es que si se busca un termino perteneciente a los 2 campos no devuelve ningun resultado
sin embargo si busco un termino que pertenece solo a una si... ;)
  #4 (permalink)  
Antiguo 08/01/2010, 08:01
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Duda buscador

ahi lo que haces es combertir los espacios de busqueda en comodines
entonces si buscas como en tu ejemplo

"alejandro sanz lookig for paradise"

te dara match si encuentra cualquiera de las palabras juntas o separadas...

saludos!

PD: no es necesario el PM siempre estoy mirando el foro! que la paciencia no te consuma.. :P
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 08/01/2010, 08:06
 
Fecha de Ingreso: noviembre-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Duda buscador

Cita:
Iniciado por Hidek1 Ver Mensaje
ahi lo que haces es combertir los espacios de busqueda en comodines
entonces si buscas como en tu ejemplo

"alejandro sanz lookig for paradise"

te dara match si encuentra cualquiera de las palabras juntas o separadas...

saludos!

PD: no es necesario el PM siempre estoy mirando el foro! que la paciencia no te consuma.. :P
no mira... las palabras si las encuantra si estan separadas.. por ejemplo si busco "looking for paradise"

tengo resultado... ;)

http://www.prueba.mimusicagratis.es/busca/looking-for-paradise.html

y ahora me estoy dando cuenta de que si busco "alejandro looking for paradise" me da esto:

http://www.prueba.mimusicagratis.es/busca/alejandro-looking-for-paradise.html

y si busco "lady gaga alejandro" (resultado de la busqueda anterior) me da esto:

http://www.prueba.mimusicagratis.es/busca/lady-gaga-alejandro.html

no se, son resultados muy dispares... algo esta mal, el problema de los espacios no es... no se :| estoy muy confundido..
  #6 (permalink)  
Antiguo 08/01/2010, 08:10
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Duda buscador

seria mejor en todo caso que usaras match against

te dejo un texto para que lo revises busqueda de texto
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 08/01/2010, 09:01
 
Fecha de Ingreso: noviembre-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Duda buscador

$q="SELECT melodie, artist MATCH (melodie,artist) AGAINST ('%" . $tag_explodat[0] . "%') FROM melodie";
lo he echo así y me da este error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MATCH (melodie,artist) AGAINST ('%alejandro%') FROM melodiesanz%looking%for%para' at line 1

aquí: http://www.prueba.mimusicagratis.es/busca/alejandro-sanz-looking-for-paradise.html

Etiquetas: buscadores
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 21:32.