Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - XafiloX

#11
Bases de Datos / Re: WHERE id IN subquery...
21 Julio 2011, 12:00 PM
Cita de: l337* en 20 Julio 2011, 20:01 PM
nativamente en sql o con ayuda de algun lenguaje?
En sql...con php podría hacerlo con un bucle con querys, pero me gustaría hacerlo en sql para que vaya más rápido...lo que no sé es si estoy intentado hacer algo que es imposible  :-\
#12
Bases de Datos / Re: WHERE id IN subquery...
20 Julio 2011, 19:55 PM
Pero con eso no haces lo que yo quiero...lo que yo quiero es calcular el la posicion de cada usuario por el orden descendente de puntos totales y luego poner esa posicion en la tabla statspos a la fila con el mismo id que el usuario...


Toda la parte que calcula la posicion está bien:
Código (sql) [Seleccionar]
SELECT @rownum := @rownum +1 'pos', id
                        FROM dxgm_users, (SELECT @rownum :=0)r
                        ORDER BY total_points DESC


En lo que ya me falla es cuando quiero poner esa posicion en la otra tabla, que al usar IN, como le estoy pasando un resultado con varias columnas me da error...
#13
Bases de Datos / WHERE id IN subquery...
20 Julio 2011, 19:16 PM
Hola, estoy intentado hacer lo siguiente:

Código (sql) [Seleccionar]
UPDATE dxgm_statspos
   SET total_pos = r.pos
       WHERE id IN (SELECT @rownum := @rownum +1 'pos', id
                        FROM dxgm_users, (SELECT @rownum :=0)r
                        ORDER BY total_points DESC)
           AND dxgm_statspos.type = 0


Más o menos lo que yo quiero que haga es que me ordene la tabla users por total_points y con eso me saque la posicion de cada usuario según ese orden. Esa posicion se guarda en pos. Hasta aquí funciona. Luego intento poner esa "pos" en la tabla statspos en aquella fila que tiene id igual al id de la tabla users y type=0...y ahí ya me da error porque en el IN no puedo meter varias columnas.

La verdad, llevo ya un rato dándole vueltas y me he quedado atrancado en ello, no avanzo más...¿se os ocurre alguna manera de corregirla o alguna manera diferente o más sencilla de hacerla?

Gracias!

#14
Bases de Datos / Orden por defecto
16 Junio 2011, 11:12 AM
Hola, estoy bastante inquietado por una cosa, y es por qué orden sigue mysql al devolver las consultas que no tienen ORDER BY...Me he dado cuenta de que siempre las devuelve en el mismo orden, pero no termino de encontrar de dónde sale ese orden...
#15
Redes / Re: Conectar con PC de otra red
5 Abril 2011, 17:30 PM
Ya, con sockets lo hago, pero los sockets funcionan genial en red local, pero si quieres salir fuera de la red local tendría que hacer lo de los puertos que dice madpitbull, y no creo yo que el messenger se meta en tu router y te redirija los puertos  :rolleyes:
#16
Redes / Re: Conectar con PC de otra red
5 Abril 2011, 08:55 AM
Entonces como hacen los programas tipo chat para comunicar con otros ordenadores?Utilizan un servidor intermedio que reenvía los datos o que? Y como hacen para establecer una conexión directa (tipo envió de archivos)?
Muchas gracias por la ayuda ;)
#17
Redes / Conectar con PC de otra red
4 Abril 2011, 18:55 PM
Hola a todos.
Estoy intentando hacer un chat para hablar con la gente a través de internet. Para hacerlo en red local no hay ningún problema, las dificultades surgen cuando quiero hacerlo con un ordenador que esté en otra red diferente a mi red local (vamos, el tipico chat de todas la vida, un ordenador hablando con otro).

He estado leyendo esto: http://www.adslayuda.com/Generico-nat.html
Ahí dice que habría que configurar el router para que mande los datos que le lleguen a tal puerto a tal máquina, pero esa solución no me gusta. ¿No hay ninguna otra manera de hacerlo? ¿No hay ninguna mera sencilla de establecer una conexión directa sin tener que toquetear la configuración de los dos routers?
#18
Pues según lo que dice la noticia, yo supongo que lo que hace el programa es como intentarse descargar los archivos que tiene en su base de datos...como el p2p funciona de tal manera que tu solicitas un archivo y empiezas a descargar partes de la gente que lo tienes, el programa lo único que tiene que hacer es ir anotando quien tiene los archivos enteritos...luego supongo que harán una criba para ver cuales de las ips resultantes comparten una gran cantidad de archivos pedófilos y luego ya solo queda pedir las correspondientes órdenes judiciales para obtener el domicilio de las ips pedófilas y las ordenes de registro...
#19
¿Panda rojo? Yo pensaba que era un zorro...bueno, entonces debe ser un panda anoréxico... :xD

Bueno, espero con impaciencia la versión final del navegador...¡tengo unas ganas tremendas de que salga ya!
#20
Ah, ya, ya veo lo que decís...pensaba que con ese order by conseguiría agrupar de manera que me cogiese siempre el mayor valor de del_time, pero ya veo que no es así, que lo que hace es darme el resultado ordenado...

En verdad yo lo que quiero es que, a partir de una tabla en la que suele haber varias filas con un mismo rid y distintos del_time, obtener el rid solo de aquellas filas cuyo mayor del_time (de entre todas las que comparten el rid) sea menor que el tiempo actual, y esa lista de rids utilizarla para borrar los elementos que tengan ese rid en otra tabla...

Vamos, que si yo tengo una tabla que tiene (entre otras cosas) lo siguiente:

riddel_time
cf5b1f86eb50f1f39835854119dc5c1c1297437046
cf5b1f86eb50f1f39835854119dc5c1c1297440385
050c168ddc6c20dba9612144c68079061297435430
050c168ddc6c20dba9612144c68079061297435430
y el timestamp actual es 1297438046, tendría que seleccionar (y borrar) las que tengan rid 050c168ddc6c20dba9612144c6807906, ya que en el caso del otro rid, 1297437046 si es menor que el timestamp, pero 1297440385 no...

Entonces, la que query que he escrito la tengo por ahora así (aplicando ya lo del delete de novlucker):
Código (sql) [Seleccionar]
DELETE FROM web_reportes WHERE `rid` IN (SELECT rid FROM(SELECT rid, MAX(del_time) as max_del_time FROM web_messages WHERE message_type = '3' AND rid != '0' GROUP BY rid)sub WHERE sub.max_del_time <= UNIX_TIMESTAMP())

¿Consideráis que así está bien?¿Se os ocurre alguna posible optimización?

Gracias por la ayuda