2014-09-04 4 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)) 
    { 

    } 

만약 그것의 가능한 하나의 쇼 테이블 구조를 만들고, 경우에 난에 구조를 넣어,이 개 테이블을 각 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

당신을 감사합니다,이 천만 @PetruLebada있어 정확히 내가 –

+0

을 찾고 있었다입니다 –

관련 문제