【发布时间】:2019-02-20 12:05:08
【问题描述】:
我制作了一个从 joomla 数据库填充的下拉菜单。该菜单包含来自特定用户的峰名称。这部分工作顺利。 当用户从下拉菜单中选择峰名并单击删除按钮时,查询应该只删除具有特定用户的id($link_id)和所选顶部的名称($vrh_name2)的行。
在我的例子中,查询会删除该用户的所有行,而不管所选顶部的名称如何
我在哪里做错了?
<!DOCTYPE html>
<html>
<body>
<?php
echo '<div class="sender">';
$link_id = JRequest::getInt('link_id');
echo '<h4>Form for delete peak</h4>';
// Creating Dropdown menu from database
$db = JFactory::getDbo();
$query2 = $db->getQuery(true);
$query2->select('peak_name');
$query2->from($db->qn('#__climbing'));
$query2->where($db->quoteName('#__climbing.link_id')." = ".$db->quote($link_id));
$query2->order('peak_id ASC');
$db->setQuery($query2);
$peaks_list2 = $db->loadColumn();
$peaks_select2 = '<select name2="name2" id2="peaks">';
$peaks_select2 .= '<option value="">-- Select peak for delete --</option>';
foreach($peaks_list2 as $p2){
$peaks_select2 .= '<option value="' . $p2 . '">' . $p2 . '</option>';
}
$peaks_select2 .= '</select>';
?>
<form name="lista2" method="post" action="">
<?php echo $peaks_select2; ?>
<input type="submit" name="submit2" value="Delete" />
</form>
<?php
if(isset($_POST['submit2']))
{
$vrh_name2 = $_POST['name2'];
// Delete peak query
$db = JFactory::getDbo();
$q_4 = $db->getQuery(true);
$q_4->delete($db->quoteName('#__climbing'));
$q_4->where($db->quoteName('#__climbing.link_id')." = ".$db->quote($link_id))." AND ".($db->quoteName('#__climbing.peak_name')." = ".$db->quote($vrh_name2));
$db->setQuery($q_4);
$db->execute();
}
echo '</div>';
?>
</body>
</html>
【问题讨论】: