2016-03-08 130 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