我知道这是旧的MySQL驱动程序,而不是MySQLi或PDO。我想用我所知道的方式完成我的网站,然后请一些可爱的人为我转换价格。
我有一份报名表。第一个下拉列表是Select Event,它从数据库中提取数据。代码如下:
<tr>
<td colspan="4" align="center"><select name="amount" id="amount">
<?php
$query = mysql_query("SELECT * FROM skiptonevents WHERE name = '". $event . "' ");
echo "<option value=\"\">Please select one...</option>";
while($result2 = mysql_fetch_array($query)){
echo "<option value=\"" . $result2['quote'] . "\">" . $result2['quote'] . "</option>";
}
?>
</select> </td>
</tr>
一旦该人选择了他们想要的活动,他们将继续填写表格的剩余部分及其个人信息。
在表单的底部有&#34;付款:&#39;下拉&#39;&#34;
代码:
WHERE '" . $event . "'
正如您所看到的,我添加了showAlert(sender: self, withTitle: "No Blisses", withMessage: "You don't have any Blisses to show.", alertPurpose: .timed)
,它是顶部的下拉列表ID&#39;。这不起作用。因此,当WHERE与顶部选择的内容相匹配时,它将显示数据库中该事件的引用。
如何解决此问题?
答案 0 :(得分:1)
来自<form>
的数据放在一个数组中供您使用,而不是(除非您使用的是非常旧的PHP并且仍然打开了safe_mode)。即使它应该使用数组,或者您的代码也不会移植到较新版本的PHP
数组是$ _GET和$ _POST,具体取决于您使用的方法属性<form method="get">
或<form method="post">
因此,假设您使用method="post"
修改您的查询
$query = mysql_query("SELECT *
FROM skiptonevents
WHERE name = '{$_POST['event']}'");
在使用$_POST['event']
之前,您应该真正验证/清理它,因为它来自不受信任的来源。
您还应该考虑从使用mysql_ extensions更改为mysqli_或PDO,因为不推荐使用mysql_ extensions并且已经从PHP7中删除了,很快就会发布它。