***************************************************************************/
/*
* verifie qu'il n'y a pas d'incoherences dans les tables de jointures
- *
-*/
+ *
+*/
require('./connect.db.inc.php');
require("Console/Getopt.php");
-function check($sql, $commentaire='')
+function check($sql, $commentaire='')
{
$it = XDB::iterRow($sql);
if ($err = XDB::error()) echo $err;
echo "|";
foreach ($arr as $val) echo "\t$val\t|";
echo "\n";
- }
+ }
echo "\n";
}
}
$opts = $opts[0];
foreach ( $opts as $opt) {
switch ($opt[0]) {
- case "v":
- $opt_verbose=true;
- echo "Mode verbeux\n";
+ case "v":
+ $opt_verbose=true;
break;
}
}
check("select uid from tels where tel_pub != 'private' and tel_pub !='ax' and tel_pub != 'public'", "Utiliseur n'ayant pas de flag de publicite pour un numero de telephone");
/* validite de adresses */
-check("select uid, adrid from adresses where FIND_IN_SET('pro',statut)","Utilisateurs ayant encore une adresse pro dans leurs adresses");
check("select uid, count(adrid) from adresses group by uid having count(adrid) > 7", "Utilisateurs ayant trop d'adresses");
-/* Validite de entreprises */
-check("select uid, count(entrid) from entreprises group by uid having count(entrid) > 2","Utilisateurs ayant trop d'entreprises");
-
/* Validite des tables de langues, competences, mentoring*/
check("select uid, count(lid) from langues_ins group by uid having count(lid) > 10","Utilisateurs ayant trop de langues");
check("select uid, count(cid) from competences_ins group by uid having count(cid) > 20","Utilisateurs ayant trop de competences");
/* validite des champ pays et region */
check("SELECT a.uid, a.country FROM adresses AS a LEFT JOIN geoloc_pays AS gp ON a.country = gp.a2 WHERE gp.pays IS NULL","donne la liste des pays dans les profils qui n'ont pas d'entree correspondante dans geoloc_pays");
/* les régions ne sont valides que dans les adresses pros */
-check("SELECT e.uid, e.country, e.region FROM entreprises AS e LEFT JOIN geoloc_region AS gr ON (e.country = gr.a2 AND e.region = gr.region) WHERE e.region != '' AND gr.name IS NULL","donne la liste des regions dans les profils pros qui n'ont pas d'entree correspondante dans geoloc_region");
+//check("SELECT e.uid, e.country, e.region FROM entreprises AS e LEFT JOIN geoloc_region AS gr ON (e.country = gr.a2 AND e.region = gr.region) WHERE e.region != '' AND gr.name IS NULL","donne la liste des regions dans les profils pros qui n'ont pas d'entree correspondante dans geoloc_region");
/* donne la liste des emails douteux que les administrateurs n'ont pas encore traité */
check("SELECT a1.alias, a2.alias, e1.email, e2.flags
FROM emails AS e1
- INNER JOIN emails AS e2 ON(e1.email = e2.email AND e1.uid!=e2.uid AND
+ INNER JOIN emails AS e2 ON(e1.email = e2.email AND e1.uid!=e2.uid AND
(e1.uid<e2.uid OR NOT FIND_IN_SET('active', e2.flags))
)
INNER JOIN emails_watch AS w ON(w.email = e1.email AND w.state = 'pending')
/* donne la liste des emails dangereux ou douteux*/
info("SELECT a1.alias, a2.alias, e1.email, e2.flags, w.state
FROM emails AS e1
- INNER JOIN emails AS e2 ON(e1.email = e2.email AND e1.uid!=e2.uid AND
+ INNER JOIN emails AS e2 ON(e1.email = e2.email AND e1.uid!=e2.uid AND
(e1.uid<e2.uid OR NOT FIND_IN_SET('active', e2.flags))
)
INNER JOIN emails_watch AS w ON(w.email = e1.email AND w.state != 'safe')