Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2005, 21:32
ghost123
 
Fecha de Ingreso: julio-2005
Mensajes: 1
Antigüedad: 18 años, 9 meses
Puntos: 0
ayuda inner join

Hola a todos.
Estoy tratando de obtener resultados de dos tablas usando el comando inner join, las tablas son como las siguientes:

mysql> describe foro;
+---------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------------------+----------------+
| id | int(7) | | MUL | NULL | auto_increment |
| autor | varchar(200) | | | | |
| titulo | varchar(200) | | | | |
| mensaje | text | | | | |
| fecha | datetime | | | 0000-00-00 00:00:00 | |
| respuestas | int(11) | | | 0 | |
| identificador | int(7) | | | 0 | |
| ult_respuesta | datetime | YES | | NULL | |
| id_cat | int(11) | | | 1 | |
| id_usuario | int(10) unsigned | YES | | NULL | |
+---------------+------------------+------+-----+---------------------+----------------+
10 rows in set (0.00 sec)

mysql>

La otra tabla involucrada:

mysql> describe usuarios;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id_usuario | int(11) | | PRI | NULL | auto_increment |
| autor | varchar(100) | | | | |
| password | varchar(32) | YES | | | |
| avatar | varchar(200) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql>

Ahora bien, mi idea es obtener datos de ambas tablas para lo cual estoy utilizando la siguiente consulta a la base de datos que me parece que no esta muy bien:

"SELECT f.mensaje, f.id, f.autor, f.titulo, f.id_cat, f.id_usuario,
DATE_FORMAT(f.fecha, '%d/%m/%Y %H:%i:%s') FROM foro as f
INNER JOIN usuarios as u ON u.id_usuario=f.id_usuario
WHERE f.id='$id' OR f.identificador='$id' AND f.id_cat='$id_cat' ORDER BY fecha ASC";

Las variables como $id llegan hasta esta pagina por get desde otras partes del codigo.
Esta consulta creo que funciona bien con los campos que debe obtener desde la tabla foro en los usuarios que no tiene avatar, con los que tiene avatar nada aparece.
Necesito obtener los datos que ahi les muestro de la tabla foro + el avatar de la tabla usuarios para despues hacer algo como lo siguiente:

$respuesta = mysql_query($sql, $conectar) or die("Pasa esto: ".mysql_error());
...
mysql_num_rows($respuesta);
...
$fila = mysql_fetch_assoc($respuesta)
...
$fila["avatar"] = $avatar;

Obteniendo asi una variable a la cual poder llamar desde otras partes para que me imprima el avatar de cada usuario.

Hace poco que estoy con esto de php y trato de solucionar los problemas yo mismo pero esta vez ya no pude y trate de obtener un poco de ayuda.

Desde ya les agradesco a todos por cualquier idea y si necesitan mas datos solo haganmelo saber.

Un saludo para todos.