Foros del Web » Programando para Internet » PHP »

comparacion de dos tablas en mysql

Estas en el tema de comparacion de dos tablas en mysql en el foro de PHP en Foros del Web. vecinos, posteo seguido en el foro de flash, y avergonzado por no poder encontrar la respuesta en el buscador, les planteo mi problema: tengo una ...
  #1 (permalink)  
Antiguo 06/02/2007, 14:02
Avatar de SAPINTO  
Fecha de Ingreso: junio-2005
Ubicación: just another fucked up pl
Mensajes: 777
Antigüedad: 18 años, 10 meses
Puntos: 0
comparacion de dos tablas en mysql

vecinos, posteo seguido en el foro de flash, y avergonzado por no poder encontrar la respuesta en el buscador, les planteo mi problema:

tengo una base de datos en mysql (que la genero mi foro phpbb), la cual intuyo que me registra los usuarios conectados con su id, mas no con su nombre.
por otro lado, esta la tabla de usuarios, entonces lo que quiero es hacer una consulta que compare las dos tablas y me muestre los nombres de los usuarios conectados para asi poder mostrarlos dentro de un flash.

entonces necesito generar un xml con esos datos para sumar el total de usuarios conectados y sus respectivos nombres, logicamente en el caso que esten registrados...

me explico?
__________________
if(user=="female" && user>="hot"){
user.gotoAndStop("sapinto's bed");
}
mi portafolio
  #2 (permalink)  
Antiguo 06/02/2007, 17:24
Avatar de fatherjuan  
Fecha de Ingreso: mayo-2005
Ubicación: Estado de México
Mensajes: 132
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: comparacion de dos tablas en mysql

Si existe un campo comun entre las dos tablas lo puedes hacer:

1. con INNER JOIN DE MySQL
2. Lo que yo hago porque el esa sentencia no la domino, y tal vez los puristas del php se enojen pero ni modo.
Puedes recorrer las dos tablas con un algoritmo de burbuja e ir generando la salida que necesites, un xml, txt, etc. Pero eso si debes tener ya conoscimientos de php y mysql, minimo lo que tengo yo que es como unn nivel abajo del basico, pero con eso alcanza.


Saludos
  #3 (permalink)  
Antiguo 06/02/2007, 20:28
 
Fecha de Ingreso: abril-2004
Mensajes: 49
Antigüedad: 20 años
Puntos: 1
Re: comparacion de dos tablas en mysql

Hola SAPINTO, ¿Lo que deseas es que la consulta devuelva los campos de nombre de usuario y de login?
creo que la consulta es esta, (reemplaza "foro_" por el prefijo que has elegido para crear las tablas del foro, creo que es "phpbb_" por defecto)

SELECT username FROM foro_users, foro_sessions WHERE user_id = session_user_id AND session_logged_in = 1

Si los quieres en orden alfabetico le agregas un ORDER BY username

Con xml no puedo ayudarte, lo siento ;(
__________________
OS: Win 2k pc: duron 1800+ 384mb ram dimm
mother: pcchips.. creo
3d: geforce 4 fx5200 128mb
audio: philips seismic edge psc705
  #4 (permalink)  
Antiguo 07/02/2007, 05:56
Avatar de SAPINTO  
Fecha de Ingreso: junio-2005
Ubicación: just another fucked up pl
Mensajes: 777
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: comparacion de dos tablas en mysql

ya bastante me han ayudado camaradas, se algo de como lanzar un xml para que lo lea mi actionscript...

gracias a ambos!
hoy lo pruebo y les comento
__________________
if(user=="female" && user>="hot"){
user.gotoAndStop("sapinto's bed");
}
mi portafolio
  #5 (permalink)  
Antiguo 07/02/2007, 08:23
Avatar de SAPINTO  
Fecha de Ingreso: junio-2005
Ubicación: just another fucked up pl
Mensajes: 777
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: comparacion de dos tablas en mysql

fantastico, todo sale de maravillas ahora:

www.amel.cl/foro

si se registran, va a salir en el flash del header su nombre...


mil gracias!
__________________
if(user=="female" && user>="hot"){
user.gotoAndStop("sapinto's bed");
}
mi portafolio
  #6 (permalink)  
Antiguo 07/02/2007, 08:54
Avatar de SAPINTO  
Fecha de Ingreso: junio-2005
Ubicación: just another fucked up pl
Mensajes: 777
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: comparacion de dos tablas en mysql

um... ahora tengo un problema con los duplicados...


SELECT username FROM phpbb_users, phpbb_sessions WHERE user_id = session_user_id AND session_logged_in = 1


esto funciona de maravillas, pero extrañamente, si hago esta consulta en sql, me muestra dos veces el usuario, entonces..

no hay alguna forma de incluir en la consulta: "remover duplicados"?

estaria muy agradecido..
__________________
if(user=="female" && user>="hot"){
user.gotoAndStop("sapinto's bed");
}
mi portafolio
  #7 (permalink)  
Antiguo 07/02/2007, 21:16
 
Fecha de Ingreso: abril-2004
Mensajes: 49
Antigüedad: 20 años
Puntos: 1
Re: comparacion de dos tablas en mysql

creo que hay varios caminos...

1- puedes empezar la consulta asi
SELECT DISTINCT username ...

2- o agrupar por username, al final de todo agegarle:
... GROUP BY username

no estoy seguro cuál consulta sea más veloz, pero en realidad, si lo que vos buscabas es un ID en particular (uno que ya tenías) entonces simplemente agrega un
... LIMIT 1
al final de la consulta
eso debería bastar :P saludos
__________________
OS: Win 2k pc: duron 1800+ 384mb ram dimm
mother: pcchips.. creo
3d: geforce 4 fx5200 128mb
audio: philips seismic edge psc705
  #8 (permalink)  
Antiguo 08/02/2007, 06:48
Avatar de SAPINTO  
Fecha de Ingreso: junio-2005
Ubicación: just another fucked up pl
Mensajes: 777
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: comparacion de dos tablas en mysql

buena! voy a tratar eso compadre... gracias de nuevo, me solucionaron el problem
__________________
if(user=="female" && user>="hot"){
user.gotoAndStop("sapinto's bed");
}
mi portafolio
  #9 (permalink)  
Antiguo 08/02/2007, 07:49
Avatar de SAPINTO  
Fecha de Ingreso: junio-2005
Ubicación: just another fucked up pl
Mensajes: 777
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: comparacion de dos tablas en mysql

listo, solucionado gracias al DISTINCT. lo detallo a continuacion por si a alguien le sirve:


//----------online.php
<?PHP

$link = mysql_connect("localhost","db_user","db_pass");
mysql_select_db("db_name");

$query = 'SELECT DISTINCT username FROM phpbb_users, phpbb_sessions WHERE user_id = session_user_id AND session_logged_in = 1';
$results = mysql_query($query);


//genero el xml:
$xml .= "<?xml version=\"1.0\"?>\n";
$xml .= "<users>\n";
while ($line = mysql_fetch_assoc($results)){
$xml .= "<online>".$line["username"] ."</online>"."\n";
}
$xml .= "</users>\n";
echo $xml;

mysql_close($link);
?>
//----------------

esto me devuelve esto:


<?xml version="1.0"?>
<users>
<online>sapinto</online>
<online>otro usuario</online>
</users>

y leyendo estos datos desde flash, pues puedo hacer practicamente lo que sea...

gracias compadres por la ayuda prestada.
__________________
if(user=="female" && user>="hot"){
user.gotoAndStop("sapinto's bed");
}
mi portafolio
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 19:35.