décalage de base de données
Je cherche à faire un "show tables"
puis un "show table status from nom_base_de_donnees"
mais j'obtiens la réponse à l'itération suivante de la boucle.
Si qqn peut m'expliquer ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| function myrow($data)
{
return "<td>$data</td>";
}
$nb=0;
foreach ($db as $BdD) {
$nb++;
echo "$nb : \$BdD=$BdD" . BR;
mysql_select_db($BdD);
if ($BdD=='interclassement essai 1') continue;
$result=mysql_query('use ' . $BdD);
//if (is_resource($result)) mysql_free_result($result);
$requete="show tables";
$result=mysql_query($requete);
echo "requete=$requete".BR;
echo "\$result='$result'" . BR;
$cpt=0;
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf(++$cpt . " - %s " . BR,$row[0]);
}
//mysql_free_result($result);
echo '<hr>';
mysql_select_db($BdD);
$result=mysql_query('use ' . $BdD);
//if (is_resource($result)) mysql_free_result($result);
//$requete="show table status";
$requete="show table status from $BdD";
$result=mysql_query($requete);
echo "requete=$requete".BR;
echo "\$result='$result'" . BR;
$num_rows = mysql_num_rows($result);
echo "$num_rows enregts" . BR;
echo '<table border=3>';
echo '<tr><u>';
echo myrow('cpt');
echo myrow('Name');
echo myrow('Engine');
echo myrow('Version');
echo myrow('Row_format');
echo myrow('Rows');
echo myrow('Avg_row_length');
echo myrow('Data_length');
echo myrow('Max_data_length');
echo myrow('Index_length');
echo myrow('Data_free');
echo myrow('Auto_increment');
echo myrow('Create_time');
echo myrow('Update_time');
echo myrow('Check_time');
echo myrow('Collation');
echo myrow('Checksum');
echo myrow('Create_options');
echo myrow('Comment');
echo '</u></tr>';
$cpt=0;
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
//echo BR . $row . count($row) . $row[0] . BR;
++$cpt;
printf ("<tr><td>$cpt</td>");
for ($i = 0; $i < 18; $i++) {
printf ("<td>%s</td>", $row[$i]);
}
printf ("</tr>" . BR);
}
//mysql_free_result($result);
echo '<hr>';
}
$ret=mysql_close($connex);
if ($ret===false) echo 'erreur de fermeture de la connexion à la base de donnnées !'; |