由于Stack Overflow的优秀人员,我非常接近完成我一直在努力的项目。好极了!我已经查看了类似的问题,但他们没有在多个下拉菜单中解决这个问题:如何在下拉列表中提交包含数据库中所选值的表单以及没有下拉列表?动态生成的值(' city','州')未发布。部分表格:
<select name="city[]" id="city" multiple>
<?php
$query="SELECT City FROM Cities";
$result = mysqli_query($link, $query);
while($r = mysqli_fetch_assoc($result)){
echo '<option value="'.$r['City'].'">'.$r['City'].'</option>'; }
?>
</select>
数据库的结果成功显示出来。在第二页,汇集查询:编辑:更新
$where = array();
$param = array();
foreach($_POST as $key => $option) {
if (
!empty($option)
and in_array($key, array('Role', 'issueInterest', 'targetPop','placement', 'targetIssues', 'City', 'state')))
{
if (is_array($option)) {
foreach($option as $k => $optval) {
$where[] = "`".$key."` = ?";
$param[] = $optval;
}
}
else {
$where[] = "`".$key."` = ?";
$param[] = $option;
}
}
}
$query_string = "SELECT * FROM dummy_table";
if(!empty($where))
$query_string .= " WHERE ".implode(' AND ',$where);
$stmt = $db->prepare($query_string);
$stmt->execute($param);
echo '<pre>';
$stmt->setFetchMode(PDO::FETCH_ASSOC);
echo '<center><table cellpadding="0" cellspacing="0" class="db-table">';
echo '<thead><tr><th>Name:</th>
<th>Email:</th>
</tr>
</thead>';
while($row = $stmt->fetch()) {
echo "<tr><td>";
echo $row['name'];
echo "</td><td>";
echo $row['email'] . '</td>';
}
echo '</pre>';
?>
如果我从数据库中选择既是学生(正常下拉列表)并且居住在纽约(动态下拉列表)的人,则无论城市如何,都将选择所有学生。
如果有比PHP和mySQLi更好的方法,请告诉我。 谢谢!