Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

sistema de rating (ON DUPLICATE UPDATE) y promedio

Estas en el tema de sistema de rating (ON DUPLICATE UPDATE) y promedio en el foro de Mysql en Foros del Web. Estoy reformulando un sistema de rating que hacia demasiadas consultas a base de datos (una por cada item a valorar, mas inserts y updates varios ...
  #1 (permalink)  
Antiguo 03/11/2010, 14:19
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Información sistema de rating (ON DUPLICATE UPDATE) y promedio

Estoy reformulando un sistema de rating que hacia demasiadas consultas a base de datos (una por cada item a valorar, mas inserts y updates varios en cada click).

La cuestion es si esto me asegura que estoy valuando y revaluando bien un item:

Código MySQL:
Ver original
  1. "INSERT INTO puntuaciones (puntuaciones, promedio, id_foto) VALUES ('1', '3.5', '3')
  2.  
  3. ON DUPLICATE KEY UPDATE puntuaciones = puntuaciones+1, promedio = (promedio+3.5)/2 "


La consulta ON DUPLICATE KEY les parece buena? Creo que funciona ok...

La logica de un promedio es sumar los puntajes, y restarlos por el numero de puntajes. En este caso, sumo el total existente al nuevo puntaje y lo divido por dos. Esa manera de evaluar un promedio "al vuelo" esta bien matematicamente?
  #2 (permalink)  
Antiguo 03/11/2010, 15:01
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 8 meses
Puntos: 65
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

suma de todos los puntajes dividido la cantidad de votos

voto1 = 5
voto2 = 5
voto3 = 7


5 + 5 + 7 = 17
17/3 = 5.6666

según lo tuyo seria

promedio - cantidadDeVotos
5+0 = 5
5/1 = 5
-------
5+5 = 10
10/2 = 5
-------
5+7 = 12
12/3 = 4

no da jeje

no debe ir promedio, debe ir suma de votos
cantidad - sumaAcumulador
1 - 5
si le dan otro 5 queda
2 - 10
si le dan un 7 queda
3 - 17

entonces sumaAcumulador/cantidad
17/3 = 5.6666

acumula la suma de los puntajes y otra columna la cantidad de voto, de eso haces la división
  #3 (permalink)  
Antiguo 03/11/2010, 15:05
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Gracias por tomarte el trabajo de hacer las cuentas. Yo para las matematicas... voy flojo.

Es cierto, promedio = (promedio+nuevoValor)/2 no es un numero fiable.

Tengo almacenados todos los votos y las puntuaciones individuales. Debería entonces sacar la cuenta cada vez que almacene los nuevos resultados? Como me gustaría saber stored procedures!

Alguien mas puede aportar algun dato a esto?
  #4 (permalink)  
Antiguo 03/11/2010, 15:13
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 8 meses
Puntos: 65
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

espera, primero que querés hacer? si ya sé que el promedio

pasa que creí que querias usar solo un registro por cada foto jeje
entonces ahi en una columna usas de acumulador (para tener la suma total) y en otra de contador (para saber cantidad de voto)

pero si me decis que tenes los votos en una fila cada una es otra cosa jeje usa AVG
  #5 (permalink)  
Antiguo 03/11/2010, 15:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Cita:
La logica de un promedio es sumar los puntajes, y restarlos por el numero de puntajes. En este caso, sumo el total existente al nuevo puntaje y lo divido por dos. Esa manera de evaluar un promedio "al vuelo" esta bien matemáticamente?
En realidad, a mi entender estás encarando mal el problema porque el SQL posee funciones para realizar ese tipo de operaciones estadísticas con mucha mayor facilidad y precisión de lo que puedes hacer en la forma que has planeado.
El tema pasa por dos detalles al menos:
1) Nunca se guardan valores calculables en las bases de datos, porque el tiempo que tarda la base de datos en realizar esos cálculos es demasiado breve, y carece de sentido agregar campos simplemente para guarda algo que puedes obtener en la misma consulta.
2) Los promedios son valores dinámicos. La cantidad de ítems intervinientes afecta el valor real del promedio, por lo que un promedio sólo tiene sentido para un momento dado, o bien para un período ya cerrado.

Lo que sería bueno, para poder ayudarte, es que nos dieses una idea de qué es lo que calculas y que promedios agrupados en base a qué conceptos son los que quieres obtener.

Para darte una idea, MySQL puede devolverte en una consulta no sólo las medias aritméticas (promedios), sino que te los puede segmentar agrupadas por conceptos de tiempo, con subtotales por ítem o por períodos, o como quiera que desees agrupar la info, y para lograrlo sólo necesita los valores a sumar y no sus "promedios" parciales.

Así, pues, ¿cuáles som los datos, los conceptos de agrupamiento y cómo quieres promediarlos?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 03/11/2010, 15:30
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Mil gracias por las respuestas!

Tengo dos tablas ( no las construi yo, sino que son una traduccion al español de un sistema que ya existia, pero que en PHP y cantidad de consultas era ineficiente ).

Una de las tablas guarda cada voto (la ip del usuario, su puntuacion, el id de la fotografia). Es decir, aqui se listan todos los votos.

La otra tabla guarda promedios (un id autoincremetal, la cantidad de votos para una foto, el promedio, el id de la foto ).

Quizas estas dos tablas puedan plantearse mejor, pero a mi me vale.

Lo que necesito es que cuando un usuario hace click en las estrellitas de rating, su puntuacion se guarde en la tabla de ips, y se actualice la cantidad de votos y el promedio en la tabla de votos.

Esta es la estructura que tengo:

Código MySQL:
Ver original
  1. -- --------------------------------------------------------
  2.  
  3. --
  4. -- Estructura de tabla para la tabla `ips_puntuaciones`
  5. --
  6.  
  7. CREATE TABLE IF NOT EXISTS `ips_puntuaciones` (
  8.   `ip` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
  9.   `id_foto` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
  10.   `puntaje` decimal(2,1) NOT NULL DEFAULT '0.0'
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  12.  
  13. --
  14. -- Volcar la base de datos para la tabla `ips_puntuaciones`
  15. --
  16.  
  17. INSERT INTO `ips_puntuaciones` (`ip`, `id_foto`, `puntaje`) VALUES
  18. ('127.0.0.1', '2', '4.1'),
  19. ('127.0.0.1', '1', '3.2'),
  20. ('127.0.0.1', '4', '2.6'),
  21. ('127.0.0.1', '3', '2.4'),
  22. ('127.0.0.1', '26', '4.0'),
  23. ('127.0.0.1', '31', '5.0'),
  24. ('127.0.0.1', '30', '4.0'),
  25. ('127.0.0.1', '28', '4.0'),
  26. ('127.0.0.1', '27', '4.0'),
  27. ('127.0.0.1', '29', '4.0');
  28.  
  29. -- --------------------------------------------------------
  30.  
  31. --
  32. -- Estructura de tabla para la tabla `puntuaciones`
  33. --
  34.  
  35. CREATE TABLE IF NOT EXISTS `puntuaciones` (
  36.   `puntuaciones` int(10) unsigned NOT NULL DEFAULT '0',
  37.   `promedio` decimal(65,1) NOT NULL DEFAULT '0.0',
  38.   `id_foto` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
  39.   PRIMARY KEY (`id`),
  40.   UNIQUE KEY `id_foto` (`id_foto`)
  41. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=12 ;
  42.  
  43. --
  44. -- Volcar la base de datos para la tabla `puntuaciones`
  45. --
  46.  
  47. INSERT INTO `puntuaciones` (`id`, `puntuaciones`, `promedio`, `id_foto`) VALUES
  48. (1, 1, '4.1', '2'),
  49. (2, 1, '3.2', '1'),
  50. (3, 1, '2.6', '4'),
  51. (4, 1, '2.4', '3'),
  52. (6, 1, '4.0', '26'),
  53. (7, 1, '5.0', '31'),
  54. (8, 1, '4.0', '30'),
  55. (9, 1, '4.0', '28'),
  56. (10, 1, '4.0', '27'),
  57. (11, 1, '4.0', '29');

Gonzalo: me encantaría usar algun metodo de mysql para calcular el nuevo promedio al ingresar la nueva puntuacion... Por ahora estoy con la consulta que ves en mi primer mensaje.
  #7 (permalink)  
Antiguo 03/11/2010, 15:31
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 8 meses
Puntos: 65
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

yo guardo cada voto como un registro porque lo guardo con fecha de voto porque quiero que un usuario pueda votar cada x cantidad de tiempo, o controlar ip, u otra cosa

entonces para el promedio uso un select avg
tengo una columna "puntuaciones" que es la calificación y otra "id_foto"

SELECT avg(puntuaciones) promedio FROM votos WHERE id_foto = 1
  #8 (permalink)  
Antiguo 03/11/2010, 15:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Código MySQL:
Ver original
  1. SELECT avg(puntuaciones) promedio FROM votos WHERE id_foto = 1
Exactamente a esto me estaba refiriendo.
De esta forma, Mayd, el promedio es irrelevante porque obtener el de una imagen o tema de voto es realizar esa consulta, y recuperar los de todas las fotos es algo tan simple como (siguiendo el ejemplo de Dany_s):
Código MySQL:
Ver original
  1. SELECT id_foto, AVG(puntuaciones) promedio FROM votos GROUP BY id_foto;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 03/11/2010, 15:46
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

O sea que avg() te genera un promedio al vuelo... cuando haces un SELECT. Y no habría necesidad de guardar el promedio realmente.

Estoy haciendo esta consulta y parece que va bien:

Código MySQL:
Ver original
  1. SELECT avg(puntaje) FROM ips_puntuaciones WHERE id_foto = 1

Pero por que en el ejemplo usatedes ponen avg(puntaje) promedio? Ese valor "promedio" que seria? En la documentacion no aparece ninguna "argumento" fuera del parentesis:
http://dev.mysql.com/doc/refman/5.0/...l#function_avg
  #10 (permalink)  
Antiguo 03/11/2010, 15:50
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 8 meses
Puntos: 65
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

es un alias, asi podes recuperar como nombre de campo :)

sino te sale como nombre "avg(puntuaciones) "
  #11 (permalink)  
Antiguo 03/11/2010, 15:57
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Entiendo. Mil gracias a los dos.

Voy a eliminar la tabla de "promedios" y conservar el listado que guarda las ip solamente.

Y me las ingeniaré para tomar los promedios de varias fotos a la vez pero usando un JOIN desde la tabla fotos...
  #12 (permalink)  
Antiguo 03/11/2010, 16:05
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 8 meses
Puntos: 65
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

gnzsoloyo: creo que lo que quicieron hacer primero con esas 2 tablas es que solo calcule el promedio al insertar un voto, capaz usan un trigger para que al insertar en la de votos, actualice el promedio de la otra tabla.
Supongo que con eso ahorran recursos al mostrar un linstado de fotos ya que no hace el promedio por cada visita...

No sé si en realidad se ahorra algo ¿se ahorra algo con eso? o es igual de una u otra forma
  #13 (permalink)  
Antiguo 03/11/2010, 16:05
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Sigo. Lo de usar el promedio en un JOIN no funciono del todo bien. Me devuelve un solo resultado. Pero que bueno que todo pueda entonces reducirse a un par de consultas, cuando el script original usaba unas 15!

Esta es la consulta con el JOIN:
Código MySQL:
Ver original
  1. SELECT img.id, img.titulo, img.nombre_foto, img.tecnica, img.medidas , AVG(rate.puntaje) promedio
  2. FROM fotos AS img
  3. LEFT OUTER JOIN fotos_principales AS principal ON (principal.id_foto = img.id)
  4. LEFT JOIN puntuaciones AS rate ON (rate.id_foto = img.id)
  5. WHERE img.id_album = '2' AND principal.id_foto IS NULL
  6. ORDER BY img.id DESC

Me queda una duda mas. Necesito dar tres diferentes respuestas:
- ya votaste
- gracias por votar
- hubo un problema. Intentalo de nuevo.

Quizas esto lo solucione con PHP, pero creo que con mysql se puede. La idea es que si existe ya la clave ip/foto, me de un error de duplicado que yo pueda procesar. Que puedo hacer? Tengo esto:

Código MySQL:
Ver original
  1. "INSERT INTO puntuaciones (ip, id_foto, puntaje) VALUES ('1', 2', '3')"

Dany: no, no ahorraban en nada. Despilfarraban. Si vieras el codigo! Para empezar, había una consulta ajax para buscar el promedio de cada imagen en pantalla. En mi caso, 12. Y eso se puede tener desde un primer momento con un JOIN!

Última edición por mayid; 03/11/2010 a las 16:13
  #14 (permalink)  
Antiguo 03/11/2010, 16:19
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Listo, lo primero era porque falta el GROUP BY que me dijistes.

Lo segundo... aun no se. Existe algo como ON DUPLICATE KEY responde "algo"?
  #15 (permalink)  
Antiguo 03/11/2010, 16:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Cita:
No sé si en realidad se ahorra algo ¿se ahorra algo con eso? o es igual de una u otra forma
En realidad no se ahorra mucho, si es que algunos milisegundos más o menos resultan trascendentes. La operación de hacer los promedios como se planteó es demasiado rápida en el servidor como para darle mucha importancia. Además, tienes más delay en el enlace de internet de lo que la base tarda en resolver consultas tan simples....

Mayd:
Cita:
- ya votaste
- gracias por votar
- hubo un problema. Intentalo de nuevo.
Estos son problemas de orden procedimiental. No interviene mucho la base de datos, porque casi todo son obtenidos por el PHP.
La primera requiere una lectura o cuenta de los registros de eses usuario vinculaos con el tema o la foto, puedes hacer un
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE foto_id = iduser LIMIT 1;
Si la lectura devuelve al menos un registro, ya votó.
El "gracias por votar" y "Hubo un problema" son simplemente las respuestas al usuario cuando una inserción es exitosa o no. Eso lo puedes resolver perfectamente con el PHP.
No te olvides que siembre que uan consulta es ejecutada desde un lenguaje, MySQL responde con un valor numérico que expresa la cantidad de registros afectados. Cada lenguaje tiene a su vez funciones que traducen la respuesta para poder usarla.
Aprovecha esas funciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 03/11/2010, 16:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Cita:
Iniciado por mayid Ver Mensaje
Listo, lo primero era porque falta el GROUP BY que me dijistes.

Lo segundo... aun no se. Existe algo como ON DUPLICATE KEY responde "algo"?
No.
Eso lo resuelves con las funciones de cada lenguaje conforme haya o no tenido éxito la operación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 03/11/2010, 16:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Código MySQL:
Ver original
  1. SELECT img.id, img.titulo, img.nombre_foto, img.tecnica, img.medidas , AVG(rate.puntaje) promedio
  2. FROM fotos AS img
  3. LEFT OUTER JOIN fotos_principales AS principal ON (principal.id_foto = img.id)
  4. LEFT JOIN puntuaciones AS rate ON (rate.id_foto = img.id)
  5. WHERE img.id_album = '2' AND principal.id_foto IS NULL
  6. ORDER BY img.id DESC
Esto tal vez requiera una modificación de lógica
Código MySQL:
Ver original
  1.     img.id,
  2.     img.titulo,
  3.     img.nombre_foto,
  4.     img.tecnica,
  5.     img.medidas ,
  6.     AVG(rate.puntaje) promedio
  7.     fotos img
  8.     LEFT JOIN fotos_principales principal ON img.id = principal.id_foto
  9.     LEFT JOIN puntuaciones rate ON img.id = rate.id_foto
  10.     img.id_album = '2' OR  principal.id_foto IS NULL
  11. GROUP BY img.id DESC
  12. ORDER BY img.id DESC;

Tips:
- Pon los campos del ON en el mismo orden de las tablas.
- Comienza con la tabla que tenga todas las instancias (registros).
- OUTER es irrelevante si no usas una conexión ODBC. Sólo lo toma por compatibilidad, pero el parser lo transforma en LEFT JOIN.
- Si vas a usar una función de agregación, como AVG, se requiere la cláusula GROUP BY.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #18 (permalink)  
Antiguo 03/11/2010, 16:29
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Edito: leyendo tus comentarios todo funciona a la perfeccion! Viene bien saber sobre las convenciones, que esta de mas, y por sobre todo me sirvió la última linea, que agrupa por img.id y no por rate.id_foto que era lo que me estaba ocultando las fotos no votadas.

Mil gracias de nuevo. Todo esta resuelto y me voy sabiendo varias cosas!
  #19 (permalink)  
Antiguo 03/11/2010, 16:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Cita:
WHERE img.id_album = '2' AND principal.id_foto IS NULL
Ten cuidado con esta condición. Si principal.id fuese NULL, no te devolvería puntuaciones, según me parece, porque es parte de las condiciones del FROM.
Si lo pones para que te devuelva ceros en las no votadas, lo que debe ser es OR no AND.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #20 (permalink)  
Antiguo 03/11/2010, 16:36
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

De esto ultimo, te cuento que cada album de fotos tiene una foto principal. Eso es obligatorio. Y no esta relacionado con el rating.

Igual, lo voy a pensar. Saludos!
  #21 (permalink)  
Antiguo 03/11/2010, 16:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

El detalle es porque tienes que verificar si las dos condiciones pueden darse realmente juntas (AND), si una es excluyente, no tendrás registros.
Pera ser exacto y que se entienda mejor: Si fotos.id_album = '2' y la foto aparece en la tabla fotos_principales, entonces no aparecerá en la consulta, porque estás consultando sólo por las fotos que no figuren en esa tabla.

Si esa es la condición, no hay problema, pero de lo contrario debes cambiar el AND por el OR.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #22 (permalink)  
Antiguo 03/11/2010, 16:57
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 4 meses
Puntos: 101
Respuesta: sistema de rating (ON DUPLICATE UPDATE) y promedio

Veo. Lo voy a pensar en frio. Pero te confirmo que la condicion es excluir la foto principal, porque esa se toma de una tabla aparte.

En fin, aqui esta el resultado de lo que venimos hablando: la galeria.

Saludos!

Etiquetas: duplicate, promedio, rating, update, sitemap
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 21:21.