Foros del Web » Programando para Internet » PHP »

Noticias relacionadas

Estas en el tema de Noticias relacionadas en el foro de PHP en Foros del Web. Hola, queria hacer un sistema de noticias relacionadas, osea al ver una noticia que te muestre otras noticias de la base de datos que tengan ...
  #1 (permalink)  
Antiguo 19/08/2007, 18:45
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 3 meses
Puntos: 0
Noticias relacionadas

Hola, queria hacer un sistema de noticias relacionadas, osea al ver una noticia que te muestre otras noticias de la base de datos que tengan algo que ver con esa noticia que estes viendo.
Yo quiero que por varias palabras del titulo o contenido ya se relacionen pero no logro hacerlo, hice algo asi :

Código PHP:
     $noticias_rel=mysql_query("SELECT * FROM noticias WHERE contenido_noticia LIKE '%".$getnoticia['contenido_noticia']."%'");
     echo 
"
        </table>
     <table width=100% align=left>
      <tr>
       <td class='titulos_tablas' width='50%' align='left' style='font-size:11px;'>> Noticias Relacionadas</td>
       <td class='titulos_tablas' width='50%' align='right' style='font-size:11px;'>> Ultimas 10 Noticias</td>
      </tr>
     "
;
 while (
$row mysql_fetch_array($noticias_rel))
 {
  
$get_date=mysql_fetch_array(mysql_query("SELECT DATE_FORMAT(fechaord, '%d/%m') AS fechaformat, DATE_FORMAT(fechaord, '%Y') AS fechaformat2 FROM noticias WHERE id_noticia='".$row['id_noticia']."'"));
   echo 
"
    <tr><td style='padding-top:2px; padding-bottom:2px; padding-left:2px; border-bottom: solid 1px #9C9C9C;' class='c'>
     <b>"
.$get_date['fechaformat']."</b> > <a href='index.php?titulo=".$nombre."&a=noticia&id=".$row['id_noticia']."' style='font-size:11px;'>".$row['titulo_noticia']."</a>
    </td></tr>
   "
;
 } 
Pero me devuelve solamente la noticia que estoy viendo nomas

Un saludo
  #2 (permalink)  
Antiguo 19/08/2007, 18:58
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Noticias relacionadas

Tienes que usar MATCH y AGAINST en vez de LIKE, ya que ésta solo te devolverá resultados que contengan esa cadena.
  #3 (permalink)  
Antiguo 19/08/2007, 19:13
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Noticias relacionadas

Cita:
Iniciado por Bonez Ver Mensaje
Tienes que usar MATCH y AGAINST en vez de LIKE, ya que ésta solo te devolverá resultados que contengan esa cadena.
Me puedes ayudar a armar algo con eso?
no tengo idea nunca use eso jeje

saludos!
  #4 (permalink)  
Antiguo 19/08/2007, 19:35
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Noticias relacionadas

Un ejemplo de la consulta sería algo así:
Código:
SELECT * FROM tabla WHERE MATCH(campo1,campo2) AGAINST ($cadena_a_buscar)
Tienes que tener en cuenta que necesitas crear un índice en la tabla de la base de datos que vayas a usar.
Si usas algún script para administrar la base de datos, seguramente venga la opción de crear un índice de la tabla.
  #5 (permalink)  
Antiguo 19/08/2007, 19:57
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Noticias relacionadas

Cita:
Iniciado por Bonez Ver Mensaje
Un ejemplo de la consulta sería algo así:
Código:
SELECT * FROM tabla WHERE MATCH(campo1,campo2) AGAINST ($cadena_a_buscar)
Tienes que tener en cuenta que necesitas crear un índice en la tabla de la base de datos que vayas a usar.
Si usas algún script para administrar la base de datos, seguramente venga la opción de crear un índice de la tabla.
Si, tengo PhpMyAdmin y me da la opcion de indice, pero que campo tengo que hacer indice?

saludos
  #6 (permalink)  
Antiguo 19/08/2007, 20:15
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Noticias relacionadas

Lo coloque así :

Código PHP:
$noticias_rel=mysql_query("SELECT * FROM noticias WHERE MATCH(titulo_noticia) AGAINST (".$getnoticia['contenido_noticia'].") LIMIT 6"); 
y devuelve error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sitio/public_html/noticia.php on line 59
  #7 (permalink)  
Antiguo 19/08/2007, 20:42
 
Fecha de Ingreso: septiembre-2004
Ubicación: Chihuahua Mex
Mensajes: 404
Antigüedad: 19 años, 7 meses
Puntos: 2
Re: Noticias relacionadas

Yo tambien estoy interesado en esto, en AGAINST que se supone que deberia de ir?
  #8 (permalink)  
Antiguo 19/08/2007, 21:14
 
Fecha de Ingreso: enero-2007
Ubicación: Buenos Aires, ARG
Mensajes: 71
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Noticias relacionadas

la consulta parece bien, no se xq el error, mirá en esta ayuda de mysql, está bastante bie explicado.

Saludos
  #9 (permalink)  
Antiguo 20/08/2007, 05:22
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Noticias relacionadas

Tal vez hayan comillas u otras cosas raras. Prueba a pasarle addslashes().

PANAFLAKIN, en AGAINST tendría que ir las palabras a buscar.

Cita:
Iniciado por braiank Ver Mensaje
Si, tengo PhpMyAdmin y me da la opcion de indice, pero que campo tengo que hacer indice?

saludos
En el campo que vayas a usar para la búsqueda, campo, campos claro.
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:34.