2013-02-22 72 views
3

此代碼成功地列出數據庫名稱列出MySQL數據庫名稱:試圖在一個HTML下拉

<?php 
// Usage without mysql_list_dbs() 
$link = mysql_connect('localhost', 'setlist', 'music'); 
$res = mysql_query("SHOW DATABASES"); 

while ($row = mysql_fetch_assoc($res)) { 
    echo $row['Database'] . "\n"; 
} 
?> 

我想顯示在一個HTML這些名字降了下來。我一直試圖做到與代碼是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
    <head> 
     <title><!-- Insert your title here --></title> 
    </head> 
    <body> 
     <div align="center"> 
      <select name="mydropdown"> 
      <?php 
      // Usage without mysql_list_dbs() 
      $link = mysql_connect('localhost', 'setlist', 'music'); 
      $query = mysql_query("SHOW DATABASES"); 
      while ($row = mysql_fetch_assoc($query)) { 
       echo '<option value="'.$row['Database'].'">'.$row['Database'].'</option>'; 
      } 
      ?> 
      </select> 
     </div> 
    </body> 
</html> 

一開始我嘗試包括和PHP腳本內,但格式似乎搞的一團糟。難道是格式化是什麼搞亂這個代碼?

我對這些語言是完全陌生的,也很有可能我的知識缺乏也是錯誤的。任何幫助將不勝感激。

羅蘭

+0

你有一個錯字'$ querry'與'$ query' - 你應該啓動錯誤報告,以便PHP可以告訴你這些 – 2013-02-22 12:09:40

+1

只是供你參考:你應該避免使用mysql_query語句。 從PHP 5.5.0開始不推薦使用它們(請參閱http://www.php.net/manual/en/function.mysql-query.php)。用新代碼使用mysqli或pdo。 – chill0r 2013-02-22 12:15:10

回答

3

$querry = mysql_query("SHOW DATABASES");

應該是$query

另外:讓自己體面的IDE,打開PHP錯誤,看看PDOMySQLi,作爲mysql_-exension在deprecation process

2

您的代碼中存在可變的不匹配。

變化$querry$query

您在這裏使用$query

$row = mysql_fetch_assoc($query) 
0

檢查這個喜歡

$querry = mysql_query("SHOW DATABASES"); 
while ($row = mysql_fetch_assoc($query)) { 

您在$query拼寫錯誤做。

0

嘗試

不要使用mysql_*作爲被棄用。使用mysqli_*PDO

<?php 
// Usage without mysql_list_dbs() 
$link = mysqli_connect('localhost', 'root', '')or die(mysqli_error()); 
$query = mysqli_query("SHOW DATABASES")or die(mysqli_error()); 

echo '<select name="databases" id="databases">'; 
while ($row = mysqli_fetch_assoc($query)) 
{ 
    echo '<option value = "'.$row['Database'].'">'.$row['Database'].'</option>'; 
} 
echo "</select>"; 
?> 

</div> 
</body> 
</html>

拼寫不正確,爲$query,並請更改數據庫連接設置。

0
  1. 始終將數據庫操作與輸出分開。它不僅會使你的代碼更有助於發現問題。
    因此,總是先獲取所有數據,然後纔開始輸出。
  2. 得到一個幫手類或函數來擺脫代碼中所有無用的重複。

因此,該代碼成爲

<?php 
$db = new DB(); 
$data = $db->getCol("SHOW DATABASES"); 
?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
    <head> 
     <title><!-- Insert your title here --></title> 
    </head> 
    <body> 
     <div align="center"> 
      <select name="mydropdown"> 
<? foreach ($data as $name): ?> 
       <option><?=htmlspecialchars($name)?></option> 
<? endforeach ?> 
      </select> 
     </div> 
    </body> 
</html>