如何在数据库中选择下拉列表项

时间:2014-04-06 11:18:11

标签: php sql select menu mysqli

我有一个mysql表,里面有大约40个项目。我想要做的是在我的网页上用下拉列表引用表格中的那40个项目。 而不是将所有40个项目写出来,如下所示,以了解是否已选择项目:

<!doctype html>
<html>
</head>
<body>
<select>
<option value="Health & Beauty"<?php if (isset($_POST['SiteType']) && ($_POST['SiteType'] == 'Health & Beauty')) echo ' selected="selected"'; ?>>Health & Beauty</option></select>
</body>
</html>
and so on 40 times...

我想知道如何通过使用如下所示的SQL语句来实现它: 这是我到目前为止所做的。

$sql = "SELECT * FROM sitetypes";
$f = mysqli_query($dbc, $sql) or trigger_error("Query: $sql\n<br />Mysqli Error: " . mysqli_error($dbc));
while($row2 = mysqli_fetch_array($f, MYSQLI_ASSOC)){
echo '<option value="' . $row2['SiteTypeID'] . '">' . $row2['SiteType'] . '</option><\select>';
}

上面的代码会生成一个很好的下拉列表,但我不知道如何在用户选择项目时知道数据库。我写了什么代码来实现这一目标?我可以使用SQL语句选项,还是必须像我在本文开头所写的那样编写每个项目。

2 个答案:

答案 0 :(得分:0)

这可能对您有所帮助

选择属性添加到varchar

类型的表中
alter table user add Selected varchar(255)

将所有值提供给&#39; 0&#39;

和html页面

<select name="sitename">
    <option></option>
    <!-- your options -->
</select>

当您提交表单时,只需使用此

即可
echo $_POST['sitename'];

然后使用此查询数据库知道用户在 usertable 中选择此字段或您想要的位置

Update user set selcted='$_POST["sitename"]' where userid='currectuserid'

答案 1 :(得分:0)

我希望我理解你

$sql = "SELECT * FROM sitetypes";
$f = mysqli_query($dbc, $sql) or trigger_error("Query: $sql\n<br />Mysqli Error: " .mysqli_error($dbc));
while($row2 = mysqli_fetch_array($f, MYSQLI_ASSOC)){
echo '<option value="' . $row2['SiteTypeID'] . ' '.($row2['SiteTypeName'] == $_POST['SiteType'] ? 'selected="selected"':'').'">' . $row2['SiteType'] . '</option><\select>';
}

我不确定语法是否正确,但你明白了。 编辑:因为我可以Haz黑莓汉堡建议你需要从db(不是id)获取名称或通过POST传递ID