2014-09-04 73 views
-1

我想做一个PHP脚本来显示所有数据库,然后显示每个数据库的每个表。这是我迄今为止所做的,但我需要更短的东西,不要用如此多的变量(函数和其他语言除外):如何显示所有数据库和这些分区的所有表

$Cerere1="SHOW DATABASES"; 
$Cerere2="SHOW TABLES FROM `auth`"; 
$Cerere3="SHOW TABLES FROM `auth1`"; 
if($db_list=mysql_query($Cerere1,$con)) { 
    $db_tables1=mysql_query($Cerere2,$con); 
    $db_tables2=mysql_query($Cerere3,$con); 
while($row1 = mysql_fetch_row($db_tables1) && $row2 = mysql_fetch_row($db_tables2)) 
    { 

    } 

如果其能够使一个单一的SHOW TABLES结构,和在情况下,我有2个数据库与每个2个表,把结构分成一个单一的查询,或类似的..和是的,我知道mysql已过时,但我必须使用它

回答

2

是的。您可以SHOW DATABASES,并遍历结果集。

<?php 

$con = mysql_connect("127.0.0.1", "root", ""); 
$strSQL = "SHOW DATABASES"; 
$resGet = mysql_query($strSQL, $con); 

echo "Number of Databases:". mysql_num_rows($resGet) . PHP_EOL; 

while ($row = mysql_fetch_assoc($resGet)) { 
    $strSQL = "SHOW TABLES FROM ". $row['Database']; 
    $resGet2 = mysql_query($strSQL, $con); 
    echo "<h3>". mysql_num_rows($resGet2) ." Tables in ". $row['Database'] ."</h3> 
      <ul>"; 
    while($row2 = mysql_fetch_array($resGet2)) { 
     echo "<li>". $row2['Tables_in_'. $row['Database']] ."</li>"; 
    } 
    echo "</ul>"; 
} 

输出示例:

output

+1

谢谢,这正是我一直在寻找 – 2014-09-04 09:49:05

+0

不客气@PetruLebada – 2014-09-04 09:51:25

相关问题