Foros del Web » Programando para Internet » PHP »

Listar resto de artículos con misma categoría dentro de artículo

Estas en el tema de Listar resto de artículos con misma categoría dentro de artículo en el foro de PHP en Foros del Web. Hola a tod@s. Me gustaría saber cómo puedo hacer para asociar los datos contenidos en dos tablas distintas, de modo que, dentro de un artículo, ...
  #1 (permalink)  
Antiguo 07/03/2011, 00:35
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Listar resto de artículos con misma categoría dentro de artículo

Hola a tod@s.

Me gustaría saber cómo puedo hacer para asociar los datos contenidos en dos tablas distintas, de modo que, dentro de un artículo, poder listar automáticamente el resto de artículos que compartan su misma categoría.

Para dar más datos, diré que tengo dos tablas, una llamada "articulos" y otra llamada "categorias"

En la tabla articulos tengo los siguientes campos:

Código PHP:
  `idint(11NOT NULL AUTO_INCREMENT,
  `
categoriaint(11NOT NULL
(aparte de otros como titulo, contenido, etc...)

Y en la tabla categorias estos:

Código PHP:
  `id_categoriaint(11NOT NULL AUTO_INCREMENT,
  `
nombre_categoriavarchar(255NOT NULL DEFAULT ''
A la hora de asignar una categoría al artículo y agregarla la base de datos, tengo lo siguiente:

Código PHP:
<select name="categoria"
Y seguidamente un:

Código PHP:
$rs=mysql_query("SELECT * from categorias") or die("bla bla bla");
while(
$row=mysql_fetch_array($rs)) echo "<option value='".$row['id_categoria']."'>".$row['nombre_categoria']."</option>";
echo 
"</select>"
Por lo tanto los registros de un artículo contenidos en el campo "categoria" de la tabla articulos es el mismo al de la "id_categoria" de la tabla categorias de la categoría elegida (menudo trabalenguas jaja)

Así pues, si por ejemplo tengo 10 artículos que comparten una misma categoría, cómo podría hacer para listar dentro de ese artículo los 9 restantes?

Espero que se haya entendido.

Un saludo y gracias de antemano!
  #2 (permalink)  
Antiguo 07/03/2011, 15:41
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Amigo mira ESTE tema ahi muestro como hacer un select a dos tablas utilizando un WHERE entre dos campos iguales en ellas
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 07/03/2011 a las 15:42 Razón: mala ortografia
  #3 (permalink)  
Antiguo 07/03/2011, 15:58
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Voy a echarle un ojo, muchas gracias jotaincubus ;)
  #4 (permalink)  
Antiguo 07/03/2011, 16:18
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Hola de nuevo, he probado con un

Código PHP:
$consulta mysql_query("SELECT * FROM articulos, categorias WHERE categoria = id_categoria");
while (
$resultados mysql_fetch_array($consulta)){
echo 
$resultados['titulo'];

Pero no me lista sólo los artículos que coincidan con la misma categoría del artículo desde el que se ejecuta el código, me lista TODOS los artículos que hay en la DB.

Seguramente necesito definir algo más, pero no sé el qué ni cómo
  #5 (permalink)  
Antiguo 07/03/2011, 16:34
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Claro, con toda razón, el te trae todos porque en la tabla categorías están todas las categorías de los artículos.

tu en un menú de selección tienes las categorías verdad ??? pero este se llena con la tabla categoría de la base de datos... si eso es verdad, quieres que al seleccionar una categoría de ese menú de selección el usuario le de consultar y traiga los artículos de la categoría que el usuario selecciono..

es eso ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 07/03/2011, 16:50
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

No, a ver, yo lo que quiero es que dentro de un artículo se listen (en forma de título) el resto de artículos que compartan la categoría del artículo en el que estás.

O sea, imagina que tengo:

ARTICULO 1 - CATEGORIA A
ARTICULO 2 - CATEGORIA B
ARTICULO 3 - CATEGORIA A
ARTICULO 4 - CATEGORIA B
ARTICULO 5 - CATEGORIA C
ARTICULO 6 - CATEGORIA A
ARTICULO 7 - CATEGORIA B
ARTICULO 8 - CATEGORIA B
ARTICULO 9 - CATEGORIA B
ARTICULO 10- CATEGORIA C

Es decir, si yo entro en ARTICULO 1, me gustaría que se listara el ARTICULO 3 y el ARTICULO 6, pues son los comparten la misma categoría...

De tal modo que la estructura de la web quedara así:

Cita:
Título de ARTICULO 1

Texto de ARTICULO 1

MAS ARTICULOS DE LA CATEGORIA A

- Título ARTICULO 3
- Título ARTICULO 6
Si entro en el ARTICULO 2, que me quedara de esta forma:

Cita:
Título de ARTICULO 2

Texto de ARTICULO 2

MAS ARTICULOS DE LA CATEGORIA B

- Título ARTICULO 4
- Título ARTICULO 7
- Título ARTICULO 8
- Título ARTICULO 9
jeje, espero que esta vez se haya entendido
  #7 (permalink)  
Antiguo 07/03/2011, 17:07
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Que tal PYTUFYN,

tenes que agregar a tu consulta el id de la categoria del artículo seleccionado, algo asi:
Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT * FROM articulos, categorias WHERE categoria = id_categoria AND id_categoria = " . $article['categoria_id']);

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 07/03/2011, 18:08
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

He probado con

Código PHP:
$consulta mysql_query("SELECT * FROM articulos, categorias WHERE categoria = id_categoria AND id_categoria = " .$titulo['categoria'] . ";");
while (
$row mysql_fetch_array($consulta)){
$titulo $row['titulo'];
echo 
"$titulo";

Pero me da error: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource.

Quizás haga algo mal o esté mal escrito en algún punto. ¿Alguna idea o "solución"?

Última edición por PYTUFYN; 07/03/2011 a las 20:31
  #9 (permalink)  
Antiguo 08/03/2011, 00:41
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Perfecto! Ya lo conseguí con:

Código PHP:
$consulta mysql_query("SELECT * FROM articulos, categorias WHERE categoria = id_categoria AND id_categoria = '$categoria[id_categoria]'");
while (
$row mysql_fetch_array($consulta)){
$titulo $row['titulo'];
echo 
"$titulo";

Pero ahora me surge un "problema". ¿Cómo sería para que el artículo en el que estás no aparezca en la lista de artículos que se listan? Supongo que sería mediante un if...

¿Alguna sugerencia?

Un saludo!
  #10 (permalink)  
Antiguo 08/03/2011, 06:41
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Lo mas simple es con un if en el while, otra opción seria que agregues al final de tu query un NOT INT con el id del articulo seleccionado, algo asi:

Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT * FROM articulos, categorias WHERE categoria = id_categoria AND id_categoria = '$categoria[id_categoria]' AND id NOT IN(" . $article['id']. ")");

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 08/03/2011, 13:42
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Listar resto de artículos con misma categoría dentro de artículo

Genial masterpuppet! Me ha funcionado a la perfección!

Muchas gracias!

Etiquetas: listar
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 17:01.