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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !';