Foros del Web » Programando para Internet » PHP »

Consultas relacionadas

Estas en el tema de Consultas relacionadas en el foro de PHP en Foros del Web. Estoy trabajando en un sistema parecido a un blog, pero ahora tengo un problema. Con mysql_query(); saco los datos de una consulta y los imprimo, ...
  #1 (permalink)  
Antiguo 15/03/2009, 12:08
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 11 años, 7 meses
Puntos: 8
Consultas relacionadas

Estoy trabajando en un sistema parecido a un blog, pero ahora tengo un problema. Con mysql_query(); saco los datos de una consulta y los imprimo, pero después quiero ponerle unos enlaces que representen las consultas que sean parecidas. ¿Como podría hacer eso?
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
  #2 (permalink)  
Antiguo 15/03/2009, 12:16
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 24
Respuesta: Consultas relacionadas

Tendrías que definir un criterio que te determine que consultas son "Parecidas" a otras y hacer otra busqueda con ese criterio. Por ejemplo sacas el titulo de la primera y buscás palabras similares en el titulo y en la descripción de la segunda.
  #3 (permalink)  
Antiguo 15/03/2009, 12:21
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 11 años, 7 meses
Puntos: 8
Respuesta: Consultas relacionadas

Ok, pero, ¿como se hace eso?
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
  #4 (permalink)  
Antiguo 15/03/2009, 12:28
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 14 años, 10 meses
Puntos: 20
Respuesta: Consultas relacionadas

Lo mismo que en el otro post. No especificas lo que sabes y lo que no, ni en qué aspecto te podemos ayudar. A no ser que estés pidiendo el código... y que dudo mucho que te lo hagan entero sin dar tú antes ninguna especificación.
  #5 (permalink)  
Antiguo 15/03/2009, 12:44
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 11 años, 7 meses
Puntos: 8
Respuesta: Consultas relacionadas

A ver...
Tengo un sistema en PHP que saca artículos de la DB. Los artículos están formados por title (el título) y post (el texto).
Yo quiero que debajo del texto, salgan algunos enlaces de "Artículos relacionados", y para eso, lo que se me ha ocurrido es buscar títulos que contengan alguna de las palabras que tiene el actual. ¿Como se haría eso en PHP?
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
  #6 (permalink)  
Antiguo 15/03/2009, 13:06
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 24
Respuesta: Consultas relacionadas

Todo depende de muchas cosas siempre, a veces con una explicación no se termina de entender algunas cosas, deberías poner algo de código. Por ejemplo si es un solo post y varios los relacionados es mas sencillo que si son varios y los originales y a estos hay que agregarles otros tantos relacionados.
  #7 (permalink)  
Antiguo 15/03/2009, 13:51
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 11 años, 7 meses
Puntos: 8
Respuesta: Consultas relacionadas

Es un solo artículo y varios los relacionados. Sobre lo de poner un poco de código, no creo que nadie quiera leerse paso a paso los 7 MB de código que pesa mi .php
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
  #8 (permalink)  
Antiguo 15/03/2009, 15:28
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 14 años, 10 meses
Puntos: 20
Respuesta: Consultas relacionadas

Si tu código PHP pesa 7 MB... creo que tienes un problema

En cuanto a lo de los artículos relacionados estás diciendo todo el rato lo mismo: Que se relacionen unos artículos con otros. Esa es toda la información que das. Más que preguntar cómo sería en PHP deberías plantearte cómo sería a nivel conceptual.

Debes saber de sobra que no hay un método único para programar las cosas y que puede variar sobremanera según la aplicación tratada, de cómo se haya estructurado todo, de mil cosas. Así como por ejemplo sabes que un registro de usuarios es algo basante común, que se ve en muchísimos sitios de internet, pero no hay la función registrar(), login(), logout()... sino que es una sucesión de comandos que finalmente consiguen el resultado deseado:
Código:
- Recopilar datos en una tabla denominados como usuario, contraseña y demás
- Crear un formulario que inserte datos 
- Crear un formulario que compruebe datos
- Crear una SESSION/COOKIE
- Destruir una SESSION/COOKIE
- ...
Y lo que ve el usuario, respectivamente, es:
Código:
- Usuarios registrados
- Registra tu cuenta
- Entra en tu cuenta
- Has entrado satisfactoriamente en tu cuenta
- Has cerrado tu sesión
Lo que tú estás diciendo es lo que ve el usuario. Piensa lo que quieres a nivel conceptual y cómo desarrollarlo. ¿Cómo te lo vamos a decir nosotros si no sabemos nada de tus artículos? Lo has podido hacer de inifinitas maneras.

La cuestión es resaltar de algún modo las palabras que son importantes del artículo y buscar coincidencias con otros, pero este aporte que hago es poco más de lo que has dicho tú.
  #9 (permalink)  
Antiguo 16/03/2009, 14:33
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 11 años, 7 meses
Puntos: 8
Respuesta: Consultas relacionadas

Hola,
en realidad, la mayor parte del código no se ejecuta, porque está programado para la seguridad. Por otra parte, yo sí utilizo funciones como registrar() o logout(); defino las funciones al principio y luego las utilizo, pero reconozco que me he pasado con los ifs y los switches...

Ahora he conseguido un código. Veamos...

Código PHP:
<?php
//NOTA: Incluyo los valores de las siguientes variables
//$host=El host del MySQL
//$user=El usuario de MySQL
//$pass=La contraseña de MySQL
//$db=La DB seleccionado
//$title=El título del artículo
mysql_connect($host$user$pass);
mysql_select_db($db);
echo 
'<ul>'//Inicia la lista
$cadena=explode(" "$title); //Separamos la cadena en arrays cada vez que encuentre un espacio
while($cadena[i];$i++) { //Un bucle para cada array creado
$relacionado[i]=mysql_select("SELECT enlace FROM articles WHERE titulo LIKE '" $cadena[i] . "'"); //Busca en la tabla la palabra
echo '<li> ' $relacionado[i]; //Imprime en una lista los resultados
}
echo 
'</ul>'//Termina la lista
?>
La idea es que vaya creando una lista con todos los títulos relacionados. Solo me falta una cosa: limitar los temas relacionados a 5... ¿como lo podría hacer?
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
  #10 (permalink)  
Antiguo 16/03/2009, 14:37
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 14 años, 10 meses
Puntos: 20
Respuesta: Consultas relacionadas

Claro que utilizas esas funciones y no eres el único. Porque las creas tú y en ellas personalizas tus propios métodos. Lo que he escrito yo es justamente que no vienen preestablecidas, así que ni idea de lo que te he explicado, no?

Cita:
La idea es que vaya creando una lista con todos los títulos relacionados. Solo me falta una cosa: limitar los temas relacionados a 5... ¿como lo podría hacer?
Código PHP:
mysql_select("SELECT enlace FROM articles WHERE titulo LIKE '" $cadena[i] . "' LIMIT 5"); 
  #11 (permalink)  
Antiguo 16/03/2009, 15:04
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 11 años, 7 meses
Puntos: 8
Respuesta: Consultas relacionadas

Muchas gracias
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
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 03:18.