29 lines
1.1 KiB
PHP
29 lines
1.1 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
$argv=$_SERVER['argv'];
|
|
if ($_SERVER['argc']<>2) die('Usage : '.basename($argv[0]). " nom_database.nom_table\nRécupère le nombre de valeurs distinctes pour chaque colonne d'une table.\n");
|
|
$param=$argv[1];
|
|
$tabParam=explode('.', $param);
|
|
$db=$tabParam[0];
|
|
$table=$tabParam[1];
|
|
|
|
$iDb=new WDB($db);
|
|
$ret=$iDb->select($table,'*', '1 LIMIT 0,1', false, MYSQL_ASSOC);
|
|
if (!$ret) die ("ERREUR : Table $table inexistante : " . mysql_error());
|
|
|
|
$tabNameRows=array_keys($ret[0]);
|
|
|
|
//print_r($tabNameRows);
|
|
foreach ($tabNameRows as $i=> $nameRow) {
|
|
//if ($i<=29) continue;
|
|
$retV=$iDb->select($table,"COUNT(*) as NbDiff, $nameRow", "1 GROUP BY $nameRow LIMIT 0,1000", true);
|
|
$retT=$iDb->select($table,"MAX(LENGTH($nameRow))", '1', true);
|
|
if (count($retV)>=1000)
|
|
echo "$db.$table, $nameRow : + de 1000 valeur(s) différente(s). Longueur maxi : ".$retT[0][0]."\n";
|
|
else
|
|
echo "$db.$table, $nameRow : ".count($retV)." valeur(s) différente(s). Longueur maxi : ".$retT[0][0]."\n";
|
|
flush();
|
|
}
|
|
|
|
?>
|