php - 从下拉列表中选择,然后可以在以后的 WHERE 中使用?

标签 php mysql

我知道这是旧的 MySQL 驱动程序,而不是 MySQLiPDO .我想使用我所知道的来完成我的网站,然后请一些可爱的人以一定的价格为我转换它。

我有一张报名表。第一个下拉列表是选择事件,它从数据库中提取数据。代码如下:

 <td width="490">Select Event:</td>
      <td width="373"><span id="spryselect1">
        <select name="event" id="event">
          <?php
            $query = mysql_query("SELECT * FROM skiptonevents ORDER BY id ASC");
            echo "<option value=\"\">Please select one...</option>";
            while($result = mysql_fetch_array($query)){
              echo "<option value=\"" . $result['name'] . "\">" . $result['name'] . "</option>";
            }
            ?>
        </select>
      <span class="selectRequiredMsg">Please select an event.</span></span></td>

一旦此人选择了他们想要的事件,他们将继续使用他们的个人详细信息填写表格的其余部分。

在表格的底部有“付款:'下拉'”

代码:

 <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>&nbsp;</td>
    </tr>

如您所见,我添加了 WHERE '". $event . "' 这是顶部 'ID' 的下拉菜单。这是行不通的。因此,当 WHERE 与顶部选择的内容匹配时,它将显示数据库中该事件的报价。

我该如何解决这个问题?

最佳答案

来自 <form> 的数据放在一个数组中供您使用,而不是(除非您使用的是非常旧的 PHP 并且仍然打开了安全模式)在变量中。即使是,您也应该使用数组,否则您的代码将无法移植到较新版本的 PHP

数组是$_GET 和$_POST,具体取决于您使用的方法属性<form method="get"><form method="post">

所以假设你使用 method="post"像这样修改您的查询

$query = mysql_query("SELECT * 
                      FROM skiptonevents 
                      WHERE name = '{$_POST['event']}'");

你真的应该验证/清理 $_POST['event']在您使用它之前,因为它来自不受信任的来源。

您还应该考虑从使用 mysql_ 扩展更改为 mysqli_ 或 PDO,因为 mysql_ 扩展已被弃用并已从即将发布的 PHP7 中删除。

关于php - 从下拉列表中选择,然后可以在以后的 WHERE 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31734743/

相关文章:

java - 使用带有 REPLACE 选项的 LOAD DATA INFILE 时跳过包含非 BMP 字符(表情符号)的行?

php - 在 php 中计算访问次数的最佳方法

php - 在 PHP 中连接断开时执行脚本

mysql - 如何检查同一 ID 在不同行中是否有不同的值?

javascript - 使用 JQuery 和 Ajax 访问单击的单元格而不是所有单元格

javascript - 附加的克隆表单刷新页面但不应该

php - 通过 PDO exec() 在 MYSQL DB 中插入多行

php - PHP中的fopen模式 "r+"和 "rw+"有什么区别?

javascript - Firebug : TypeError: 'click' called on an object that does not implement interface HTMLElement

mysql - 获取从开始时间到结束时间的行数