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 - Karman

#181
bueno, trato de explicarlo con mi ejemplo inicial para ver si logro hacerme entender... tenemos esto:

Código (sql) [Seleccionar]

mysql> SELECT * FROM ejemplo;
+------+------+-----------+
| eid  | sid  | DATA      |
+------+------+-----------+
|    1 |    1 | lara lara |
|    1 |    1 | qewrqer   |
|    2 |    1 | asdfasdf  |
|    2 |    1 | lara lara |
|    3 |    1 | qewrqer   |
|    3 |    0 | zxcvzcv   |
+------+------+-----------+
6 rows IN SET (0,38 sec)


yo necesitaría los DATA (olvidemos que sean distintos por un momento), que NO pertenezcan a un determinado eid... (olvidemos el sid tb)... repito lo que puse la otra vez reducido (omito lo de la repetición):

Citarno tiene que estar dentro del grupo de archivos del "dueño" (un determinado eid)

tendríamos (por ejemplo pasándole como argumento eid=1):

Código (sql) [Seleccionar]

mysql> SELECT * FROM ejemplo;
+------+-----------+
| eid  | DATA      |
+------+-----------+
|    1 | lara lara | *** archivo de eid 1
|    1 | qewrqer   | *** archivo de eid 1
|    2 | asdfasdf  |
|    2 | lara lara | *** archivo de eid 1
|    3 | qewrqer   | *** archivo de eid 1
+------+-----------+
6 rows IN SET (0,38 sec)


me tendría que devolver:

Código (sql) [Seleccionar]

mysql> SELECT X lara lara;
+------+-----------+
| eid  | DATA      |
+------+-----------+
|    2 | asdfasdf  |
+------+-----------+
1 rows IN SET (0 sec)


y si le pasamos como argumento eid=3) (el primer ejemplo):

Código (sql) [Seleccionar]

mysql> SELECT * FROM ejemplo;
+------+-----------+
| eid  | DATA      |
+------+-----------+
|    1 | lara lara |
|    1 | qewrqer   | *** archivo de eid 3
|    2 | asdfasdf  |
|    2 | lara lara |
|    3 | qewrqer   | *** archivo de eid 3
+------+-----------+
6 rows IN SET (0,38 sec)


me tendría que devolver:

Código (sql) [Seleccionar]

mysql> SELECT X lara lara;
+------+-----------+
| eid  | DATA      |
+------+-----------+
|    1 | lara lara | *** se repite
|    2 | asdfasdf  |
|    2 | lara lara | *** se repite
+------+-----------+
1 rows IN SET (0 sec)


eso sería lo fundamental... ahora como "lara lara" se repite entre los resultados válidos, necesitaría solo uno...

creo que simplemente no se puede directamente con SQL, pero como creen que sería la forma más eficiente de hacerlo?

S2
#182
conozco la sentencias DISTINCT (es la que uso para obtener los distintos) como puse acá:

Cita de: Karman en 19 Mayo 2009, 19:52 PMobtengo todos los archivos no repetidos:

Citararchivo.com
archivo.exe
archivo2.com
archivo2.exe

obtengo los archivos del dueño:

Citararchivo.com
archivo.exe

y GROUP ... pero yo no solo necesito que sean distintos, sinó esto:

Citarcomo se ve, no me tiene que repetir los nombres de "archivo" y no tiene que estar dentro del grupo de archivos del "dueño" (un determinado eid).../quote]

Citar
iddesc  idduenio idtipo idarchivo
   1           1          1         2            <-"por ejemplo: archivo.exe"
   2           1          2         3            <-"por ejemplo: archivo.com"
   3           2          1         2            <-"por ejemplo: archivo.exe"
   4           3          2         4            <-"por ejemplo: archivo2.com"
   5           4          2         3            <-"por ejemplo: archivo.com"
   6           2          1         5            <-"por ejemplo: archivo2.exe"
   7           5          1         5            <-"por ejemplo: archivo2.exe"
   N....

S2
#183
lo que tengo es una tabla de "archivos":

Citariddesc  idduenio idtipo idarchivo
   1           1          1         2            <-"por ejemplo: archivo.exe"
   2           1          2         3            <-"por ejemplo: archivo.com"
   3           2          1         2            <-"por ejemplo: archivo.exe"
   4           3          2         4            <-"por ejemplo: archivo2.com"
   5           4          2         3            <-"por ejemplo: archivo.com"
   6           2          1         5            <-"por ejemplo: archivo2.exe"
   7           5          1         5            <-"por ejemplo: archivo2.exe"
   N....

entonces por ejemplo quiero listar todos los archivos de determinado tipo (sin repetir) menos los de dueño.

por ejemplo si digo dueño 1 me tendría que tirar algo como:

Citariddesc  idduenio idtipo idarchivo
   4           3          2         4            <-"por ejemplo: archivo2.com"
   6           2          1         5            <-"por ejemplo: archivo2.exe"
   N....

como se ve, no me tiene que repetir el "archivo" y no tiene que estar dentro del grupo de archivos del "dueño"...

sería algo así:

select * from tabla
where (idduenio <> 1 AND idarchivo <> "1".idarchivo[0] AND idarchivo <> "1".idarchivo[N]) AND (No Repetido)?


lo que yo estoy haciendo actualmente es: obtengo todos los archivos no repetidos:

Citararchivo.com
archivo.exe
archivo2.com
archivo2.exe

obtengo los archivos del dueño:

Citararchivo.com
archivo.exe

diferencia de arreglos (todos - dueño)

Citararchivo2.com
archivo2.exe

y obtengo los datos de la primera aparición del archivo... pero me parece muy poco eficiente...

Saludos
#184
contexto? los agrupo por... y después? que gano con eso?

S2
#185
porque eso me tira los que son diferentes... no si hay repetidos, y además, aux_eid pueden ser muchos... me tiraría solo si es diferente una fila de la tabla... no se si entendés...

S2
#186
buenas, tengo una duda que me está volviendo loco, tengo una tabla del siguiente tipo:


eid | sid | data
1     1    "lara lara"
1     1    "qewrqer"
2     1    "asdfasdf"
2     1    "lara lara"
3     1    "qewrqer"
3     0    "zxcvzcv"


falta el identificador del tabla pero es solo un campo auto incremental...

el tema es que: necesito obtener todos los datos que no pertenezcan a un "eid", que pertenezcan a un "sid" y que no se repitan... por ejemplo:


eid | sid | data
1     1    "lara lara"
2     1    "asdfasdf"


cuando el eid sería 3 y el sid sería 1... actualmente lo estoy haciendo de una forma un tanto embrollada:

obtengo todos los "data"'s distintos que pertenezcan al sid 1, todos los "dats"'s distintos del eid 3 sid 1, y hago una diferencia de arreglo, eso me devuelve:

"lara lara","asdfasdf"

por lo que luego tengo que buscar la primera referencia en la tabla a un "lara lara" o un "asdfasdf" y obtengo el resultado... pero es muy embrollado y no me parece eficiente...

Alguna idea de como puedo hacerlo de otra forma?

S2
#187
la única forma es con sesiones en base de datos(guardando la IP).... pero si el usuario usa IP dinámica... y no exiges nombre de usuario y contraseña... no hay vuelta...

S2
#188
Cita de: OzX en 21 Marzo 2009, 06:18 AM
Parte del ajax esta en el Servidor, no Importa si lo cierres, te cae una casa en el pc, el contador que incluso podria estar en php llamado por ajax, ese php esta en el servidor, lo cual salva de cualquier problema por parte del cliente. (browser).

No, ni parte ni nada, lo que está en el servidor es PHP, pero fuera de eso, puedes utilizar como te dijeron bases de datos son sesiones, guardar IP en sesion (en caso de desconexión), identificador de browser (en caso de distinto browser), o tiempo límite de respuesta en caso que no coincida ninguno de los anteriores...

S2
#189
PHP / Re: Sesiones en un cron
13 Marzo 2009, 02:01 AM
dependiendo de ciertas configuraciones de PHP, sentencias del tipo:

Código (php) [Seleccionar]

$_SESSION['funcionando'] = true;


tampoco son permitidas una vez que se puso algo a la vista del usuario, me pasó con varios servidores que tuve que mover todo el manejo de sesiones antes de realizar una salida... prueba y dinos que pasa...

S2
#190
PHP / Re: Problema con Array
11 Marzo 2009, 23:04 PM
tu variable array cambia con cada visita a nulo, lo que tienes que hacer es utilizar alguna base de datos para ir almacenando dichos datos y luego simplemente volcar el contenido a dicho array...

S2