2016-03-08 141 views
0

我想從MySQL數據庫中用PHP填充下拉列表。現在我的下拉列表中沒有填充任何內容。我確定我有正確的數據庫名稱,服務器名稱,用戶名和密碼。沒有從MySQL填充下拉列表

這是我的PHP文件queryfunction.php:

<?php 
function connect(){ 
    $servername = "localhost"; 
    $username = "root"; 
    $password = "******"; 
    $database = "lab4"; 
    // Create connection 
    $conn = new mysqli($servername, $username, $password); 

    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    echo "Connected successfully"; 
    mysqli_select_db($database); 
} 

function close(){ 
    mysqli_close(); 
} 

function query(){ 
    $mydata = mysqli_query("Select * from country"); 
    while($record = mysqli_fetch_array($mydata)){ 
     echo '<option value = "' . $record['CountryAbbreviation'] . '">' .$record['CountryAbbreviation'] . '"</option>'; 
    } 
} 
?> 

這裏是我的PHP文件,我稱之爲:表內

<?php 
include_once "queryfunction.php"; 
connect(); 
?> 
<!DOCTYPE html/> 

<html> 

再往下在doc:

<tr> 
    <th>Country</th> 
    <td> 
     <select name="CountryDropDown"> 
     <?php query() ?> 
     </select> 
     <?php close()?> 
    </td> 
</tr> 
+1

您至少有2個問題 - (1)變量作用域問題,請參閱http://php.net/manual/en/language.variables.scope.php as'$ conn '在'connect()'中定義,但在該函數外部不可用。 (2)你有'$ mydata = mysqli_query(「Select * from country」);'但是'mysqli_query()'需要連接作爲第一個參數 - $ mydata = mysqli_query($ conn,「Select * from country」) ;',但第一個問題需要解決才能使用。 – Sean

回答

0

用更改此行嘗試while($record = mysqli_fetch_array($mydata)){while($record = mysqli_fetch_array($mydata,MYSQLI_ASSOC)){ 或向我們顯示您的$record變量數據

+0

好的我已經嘗試過你們倆都建議過的,但仍然沒有運氣。你是什​​麼意思顯示你的$記錄變量數據? – hamstrdethwagon

+0

打印你的變量並顯示輸出結果 –

+0

我不知道如何去做你要做的事情。但我注意到,我稱之爲數據庫並不重要。所以看起來我的查詢不會去正確的數據庫。我嘗試在新的mysqli結尾處添加數據庫名稱,並且它似乎沒有顯示我的html的其餘部分。 – hamstrdethwagon