在PHP中从sql数据库创建下拉列表

时间:2017-07-18 03:48:05

标签: php mysql

*" die"的条件当我把它复制到问题时,我的代码被遗漏了。我把它放回去了。

我知道这个问题可能看似重复,但我没有在任何其他问题中找到答案。我正在尝试根据数据库中的列创建一个下拉列表。我尝试了两种不同的方式,但都没有给我正确的结果。有谁知道这样做的正确方法?

我在其他StackOverflow答案中看到的第一种方式(Fetching data from MySQL database to html drop-down listFetching data from MySQL database to html dropdown list)。我的代码如下:

<?php 
 $connect = mysql_connect('localhost', 'root'); 
  { 
   die  ("Unable to connect to database<br>");
  }
  $select = mysql_select_db('ViviansVacations'); 
  {
   die ("Unable to select database<br>");
  }
  $query = "SELECT * FROM Destinations";
  $result = mysql_query($query);
?>
<select name="select1">
<?php
  while ($line = mysql_fetch_array($result))
  {
?>
 <option value="<?php echo $line['Europe'];?>"> <?php echo 
 $line['field'];?> </option>
<?php
  }
?>
</select> 

NetBeans向我发送错误消息,说明&#34;元素中不允许使用文字&#39;选择&#39;在这种情况下&#34;。

我尝试的第二种方式:

ListView {
    id: list
    model: MyModel
    delegate: TextInput {
         text: display
         onEditingFinished: {
                model.edit = displayText
         }
}

此代码未产生任何错误。然而,在表单内部是开放的php行,后面是一个空的下拉框:

&#34); } $ select = mysql_select_db(&#39; ViviansVacations&#39;); {die(&#34;无法选择数据库 &#34); } $ query =&#34; SELECT * FROM Destinations&#34 ;; $ result = mysql_query($ query); ?&GT;

5 个答案:

答案 0 :(得分:1)

因此,您的方法存在许多问题。首先,您使用的是弃用的mysql_*函数,这是个坏主意,其次您没有正确调试数据库连接:

$connect = mysql_connect('localhost', 'root');
   {
     die  ("Unable to connect to database<br>");
  }

在上面的代码中,die语句将始终执行停止进一步执行。

还要确保数据库ViviansVacations和表Destinations以及列Europe存在正确的名称(遵循标准并尝试使用所有小写字母进行数据库/表/列命名)< / p>

正确的mysqli_*方法是(在本地测试并且选择框正确形成):

<?php
$db = 'ViviansVacations';

$mysqli = new mysqli('localhost', 'root', '', $db);

if($mysqli->connect_error) 
  die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());


$query = "SELECT * FROM Destinations";
$result = mysqli_query($mysqli, $query);

?>

<select name="select1">
<?php
while ($row = mysqli_fetch_array($result)) {
    echo "<option value='" . $row['Europe'] . "'>" . $row['Europe'] . "</option>";
}
?>
</select>  

答案 1 :(得分:0)

有几件事,你要验证和纠正。

首先,您的数据库连接代码似乎不正确。我没有看到你想要调用die的任何条件。

$connect = mysql_connect('localhost', 'root');
{
die  ("Unable to connect to database<br>");
}

从上面的代码中,下面的行将一直执行

 die  ("Unable to connect to database<br>");

您应该将数据库连接代码更正为:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);

您可以参考mysql_connect了解用法。

另外,请验证您的文件扩展名为.php

答案 2 :(得分:0)

主要是你的问题是数据库连接。试试这个 -

<?php
mysql_connect("localhost", "root", "") or
    die("Could not connect: " . mysql_error());
mysql_select_db("your_db");

$result = mysql_query("SELECT * FROM your_table");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    print_r($row);
    echo "<br>";
}

mysql_free_result($result);
?>

答案 3 :(得分:0)

可能会遇到一些问题:

  • 使用mysqli_connect代替mysql_connect,因为mysql已弃用
  • 将第3个参数设为空`mysqli_connect('localhost','root',''); //按照标准
  • 调试代码,例如:(print_r($connect),在phpmyadmin中执行查询,print_r($result)然后循环print_r($row)

最后,我相信你会得到你想要的结果,而且你会详细了解发生了什么。

答案 4 :(得分:-1)

你可能想尝试使用它.. dept_id和描述你必须根据你的数据库改变。希望这会对你有所帮助

 <?php 
  $sql = mysql_query("SELECT dept_id ,description FROM department 
  ORDER BY dept_id ASC");
  db_select($sql,"dept_id",$dept_id,"","-select Department-","","");
  ?>