在WordPress页面中填充MySQL数据库中的下拉菜单

时间:2018-04-01 23:51:05

标签: php mysql wordpress

我有一个WordPress网站,我想在其中向用户显示可供选择的城市列表并在Google地图中显示。

我已经创建了一个HTML下拉菜单,我希望在这些菜单中填充从名为Map_of_resellers的MySQL表中检索到的城市。

问题是,下拉框显示在页面中,但它是空的(没有条目)。

我使用的代码显示了我与数据库的连接是否成功,以及db查询是否成功,因此这些不是问题。

如果你想知道[insert_php]和[/ insert_php]标签是什么,它们是允许在WordPress页面中使用PHP的短代码,因为它本身不受支持。 它们被我为此目的安装的名为Insert PHP的WordPress插件使用。

这是我的PHP代码:

[insert_php]

$servername = "sql102.*******.com";
$username = "b3_*******";
$password = "********";

// 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('b3_**********');

$sql="SELECT City FROM Map_of_resellers";

$result=mysqli_query($sql);


if($result === FALSE)
{
die("Query failed: " . mysqli_error());  
}

[/insert_php]


<form name="Cities" method="post" >

[insert_php]

echo "<select name='City'>";


while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
{
echo "<option value='" . $row['City'] ."'>" . 
$row['City']."</option>";
}

echo "</select>";

[/insert_php]

</form>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

查看您提到的插件的source code,它使用eval来解析PHP代码。评估结束后,在评估脚本中创建的新变量将不在范围内。因此,您的第二个代码块将无法访问$results

替换下面的代码应该将$结果保留在范围内并解决问题:

[/insert_php]


<form name="Cities" method="post" >

[insert_php]

echo '<form name="Cities" method="post" >';