Foros del Web » Programando para Internet » PHP »

Consulta Multiple

Estas en el tema de Consulta Multiple en el foro de PHP en Foros del Web. Hola, buenos dias a todos. Os explico mi problema, tengo 2 servidores que mandan informacion a una DB, los usuarios registrados los manda todos a ...
  #1 (permalink)  
Antiguo 09/12/2011, 05:57
 
Fecha de Ingreso: diciembre-2011
Mensajes: 16
Antigüedad: 12 años, 5 meses
Puntos: 0
Consulta Multiple

Hola, buenos dias a todos.
Os explico mi problema, tengo 2 servidores que mandan informacion a una DB, los usuarios registrados los manda todos a una tabla en conjunto pero en cambio los que estan online los mandan a tablas diferentes. Por X o por Y no puedo modificar eso porque esta codificado en .amxx y no tengo ni puta idea pero lo que quiero es coger los usuarios de la base registrada y que me los marque como si estan conectados o no en una lista.
He intentado con esto:
Código PHP:
$buscauser=mysql_query("SELECT CurrentUsersPlaying2.`key`,CurrentUsersPlaying.`key` FROM CurrentUsersPlaying2 inner join CurrentUsersPlaying WHERE CurrentUsersPlaying2.`key`='$lastname'=CurrentUsersPlaying.`key`='$lastname'");
      
$myuser mysql_fetch_row($buscauser); 
y luego para mostrar el estado:
Código PHP:
 if ($lastname == $myuser[0]) {
                echo (
"<td><font color='#009900'>Online</font></td>"); } else { echo ("<td><font color='#CC0000'>Offline</font></td>"); } 
peero solo me muestra online los de un servidor, los del otro servidor salen offline, pero salen y si cambio las tablas de sitio me muestra los del otro servidor, nunca los dos juntos.

Alguien sabe que puede ser? muchas gracias
  #2 (permalink)  
Antiguo 09/12/2011, 06:12
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Consulta Multiple

Veamos, puedes usar esto: SQL: UNION

Seria algo así:

Código PHP:
$buscauser=mysql_query("
SELECT `key` FROM `CurrentUsersPlaying` WHERE `key`= '$lastname'
UNION
SELECT `key` FROM `CurrentUsersPlaying2` WHERE `key` = '$lastname'
"
); 
Así combinas el resultado de las dos consultas en 1.

¿Optimo? No lo se. Tb podrías, simplemente, primero consultar una tabla, y si existe, está online. Sino, consultar la otra, si existe, está online, sino, offline
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 09/12/2011, 07:55
 
Fecha de Ingreso: diciembre-2011
Mensajes: 16
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Consulta Multiple

de esa manera parece que funciona, pero... hay alguna manera dentro de ese query para ordenarlos? es decir se puede ordenar una tabla a traves de otra? no, no?

porque esque me recoge la lista de usuarios y los ordena como quiere pero claro, al buscar si el usuario esta conectado no se como ordenarlos para que los conectados salgan primero.

lo que es la tabla esta ordenado asi: $query = mysql_query('SELECT * FROM DatabaseCuentas ORDER BY `timestamp` DESC LIMIT '
pero como el online offline no tiene campo, simplemente pide informacion a otra tabla no se como ordenarlo

Última edición por cuackz; 09/12/2011 a las 08:13 Razón: añado algo mas
  #4 (permalink)  
Antiguo 09/12/2011, 08:56
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Consulta Multiple

Supongo que un SQL: JOIN podría servir.... sería probar xD
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 09/12/2011, 15:39
 
Fecha de Ingreso: diciembre-2011
Mensajes: 16
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Consulta Multiple

Pero el join que va en la consulta que muestra la tabla o la que hace la unión ?
  #6 (permalink)  
Antiguo 12/12/2011, 02:13
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Consulta Multiple

Perdon. No sé pq puse el join ahora mismo xD


Para ordenarlos con UNION, tienes el ejemplo en la página de mysql. Sería algo así:
Código PHP:
$buscauser=mysql_query("
(SELECT `key` FROM `CurrentUsersPlaying` WHERE `key`= '$lastname')
UNION
(SELECT `key` FROM `CurrentUsersPlaying2` WHERE `key` = '$lastname')
ORDER BY `timestamp` DESC
"
); 
Un saludo
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 12/12/2011, 09:37
 
Fecha de Ingreso: diciembre-2011
Mensajes: 16
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Consulta Multiple

Eso ya lo habia intentado, pero claro el lio es que son 3 tablas, la lista de usuarios las coge de DatabaseUSer, y los ordena por timestamp, luego el buscauser lo que hace es buscar, en Currentplaying y Currentplaying2, los mismos usuarios que hay registrados en DatabaseUser y si estan en esas tablas (significa que estan jugando) marcarlos en la lista que recoge de DatabaseUser en online. El problema es poner los usuarios online en primera pagina, que no hay manera de ordenarlos porque los campos donde marcan si estan jugando o no son de otra tabla. Y como pones aqui arriba ya lo habia probado y no funciona, creo que no se puede como quiero hacerlo xD

Etiquetas: mysql, sql, tabla, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:09.