wouahhhouuuuuuuh UNION works on mysql 4.0 !!! sooo goood
authorx2000habouzit <x2000habouzit>
Sat, 6 Nov 2004 18:29:58 +0000 (18:29 +0000)
committerx2000habouzit <x2000habouzit>
Sat, 6 Nov 2004 18:29:58 +0000 (18:29 +0000)
include/notifs.inc.php

index 8b2615b..8eb2080 100644 (file)
@@ -18,7 +18,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: notifs.inc.php,v 1.9 2004-11-06 18:18:44 x2000habouzit Exp $
+        $Id: notifs.inc.php,v 1.10 2004-11-06 18:29:58 x2000habouzit Exp $
  ***************************************************************************/
 
 define("WATCH_FICHE", 1);
@@ -47,41 +47,36 @@ class Notifs {
        while($tmp = mysql_fetch_assoc($res)) $this->_cats[$tmp['id']] = $tmp;
        mysql_free_result($res);
 
-       $res = $globals->db->query("SELECT  u.promo, u.prenom, IF(u.epouse='',u.nom,u.epouse) AS nom, a.alias AS forlife, wo.*
-                                     FROM  auth_user_quick AS q
-                               INNER JOIN  contacts        AS c  ON(q.user_id = c.uid)
-                               INNER JOIN  watch_ops       AS wo ON(wo.uid=c.contact)
-                               INNER JOIN  watch_sub       AS ws ON(wo.cid=ws.cid AND ws.uid=c.uid)
-                               INNER JOIN  auth_user_md5   AS u  ON(u.user_id = wo.uid)
-                                LEFT JOIN  aliases         AS a  ON(u.user_id = a.id AND a.type='a_vie')
-                                    WHERE  q.user_id = '$uid' AND q.watch_contacts=1
-                                 ORDER BY  wo.cid,promo,nom");
-       while($tmp = mysql_fetch_assoc($res)) {
-           $this->_data[$tmp['cid']][$tmp['promo']][$tmp['uid']] = $tmp;
-       }
-       
-       $res = $globals->db->query("SELECT  u.promo, u.prenom, IF(u.epouse='',u.nom,u.epouse) AS nom, a.alias AS forlife, wo.*
-                                     FROM  watch_promo     AS w
-                               INNER JOIN  auth_user_md5   AS u  USING(promo)
-                               INNER JOIN  watch_ops       AS wo ON(wo.uid=u.user_id)
-                               INNER JOIN  watch_sub       AS ws ON(wo.cid=ws.cid)
-                               INNER JOIN  watch_cat       AS wc ON(wc.id=wo.cid AND wc.frequent=0)
-                                LEFT JOIN  aliases         AS a  ON(u.user_id = a.id AND a.type='a_vie')
-                                    WHERE  w.uid = '$uid'
-                                 ORDER BY  wo.cid,promo,nom");
-       while($tmp = mysql_fetch_assoc($res)) {
-           $this->_data[$tmp['cid']][$tmp['promo']][$tmp['uid']] = $tmp;
-       }
-       
-       $res = $globals->db->query("SELECT  u.promo, u.prenom, IF(u.epouse='',u.nom,u.epouse) AS nom, a.alias AS forlife, wo.*
-                                     FROM  watch_nonins    AS w
-                               INNER JOIN  auth_user_md5   AS u  ON(w.ni_id=u.user_id)
-                               INNER JOIN  watch_ops       AS wo ON(wo.uid=u.user_id)
-                               INNER JOIN  watch_sub       AS ws ON(wo.cid=ws.cid)
-                               INNER JOIN  watch_cat       AS wc ON(wc.id=wo.cid)
-                                LEFT JOIN  aliases         AS a  ON(u.user_id = a.id AND a.type='a_vie')
-                                    WHERE  w.uid = '$uid'
-                                 ORDER BY  wo.cid,promo,nom");
+       $res = $globals->db->query("
+       (
+               SELECT  u.promo, u.prenom, IF(u.epouse='',u.nom,u.epouse) AS nom, a.alias AS forlife, wo.*
+                 FROM  auth_user_quick AS q
+           INNER JOIN  contacts        AS c  ON(q.user_id = c.uid)
+           INNER JOIN  watch_ops       AS wo ON(wo.uid=c.contact)
+           INNER JOIN  watch_sub       AS ws ON(wo.cid=ws.cid AND ws.uid=c.uid)
+           INNER JOIN  auth_user_md5   AS u  ON(u.user_id = wo.uid)
+            LEFT JOIN  aliases         AS a  ON(u.user_id = a.id AND a.type='a_vie')
+                WHERE  q.user_id = '$uid' AND q.watch_contacts=1
+       ) UNION DISTINCT (
+               SELECT  u.promo, u.prenom, IF(u.epouse='',u.nom,u.epouse) AS nom, a.alias AS forlife, wo.*
+                 FROM  watch_promo     AS w
+           INNER JOIN  auth_user_md5   AS u  USING(promo)
+           INNER JOIN  watch_ops       AS wo ON(wo.uid=u.user_id)
+           INNER JOIN  watch_sub       AS ws ON(wo.cid=ws.cid)
+           INNER JOIN  watch_cat       AS wc ON(wc.id=wo.cid AND wc.frequent=0)
+            LEFT JOIN  aliases         AS a  ON(u.user_id = a.id AND a.type='a_vie')
+                WHERE  w.uid = '$uid'
+       ) UNION DISTINCT (
+               SELECT  u.promo, u.prenom, IF(u.epouse='',u.nom,u.epouse) AS nom, a.alias AS forlife, wo.*
+                 FROM  watch_nonins    AS w
+           INNER JOIN  auth_user_md5   AS u  ON(w.ni_id=u.user_id)
+           INNER JOIN  watch_ops       AS wo ON(wo.uid=u.user_id)
+           INNER JOIN  watch_sub       AS ws ON(wo.cid=ws.cid)
+           INNER JOIN  watch_cat       AS wc ON(wc.id=wo.cid)
+            LEFT JOIN  aliases         AS a  ON(u.user_id = a.id AND a.type='a_vie')
+                WHERE  w.uid = '$uid'
+       )
+       ORDER BY  wo.cid,promo,nom");
        while($tmp = mysql_fetch_assoc($res)) {
            $this->_data[$tmp['cid']][$tmp['promo']][$tmp['uid']] = $tmp;
        }