Mysql使用php下拉列表中的值选择查询

Mysql使用php下拉列表中的值选择查询,php,mysql,Php,Mysql,我开始用php编程,我有点怀疑 我正在尝试使用下拉列表中的值搜索数据库 问题是查询总是使用下拉列表的最后一个值 有人能帮我找到错误吗 为什么where子句的研究总是下拉列表的最后一个值 代码 技术: 以下是我对表单所做的操作(假设您有一个正确的表单标记,带有指向正确PHP脚本的action属性): 这应该对你有用 但请注意:上面的脚本存在安全风险,因为它为SQL注入敞开了大门 更好的方法是使用PDO准备的语句,如下所示: $db = new PDO('mysql:host=CHANGE_T

我开始用php编程,我有点怀疑

我正在尝试使用下拉列表中的值搜索数据库

问题是查询总是使用下拉列表的最后一个值

有人能帮我找到错误吗

为什么where子句的研究总是下拉列表的最后一个值


代码

技术:


以下是我对表单所做的操作(假设您有一个正确的表单标记,带有指向正确PHP脚本的action属性):

这应该对你有用

但请注意:上面的脚本存在安全风险,因为它为SQL注入敞开了大门

更好的方法是使用PDO准备的语句,如下所示:

$db = new PDO('mysql:host=CHANGE_THIS_TO_YOUR_HOST_NAME;
    dbname=CHANGE_THIS_TO_YOUR_DATABASE',
    'CHANGE_THIS_TO_YOUR_USERNAME',
    'CHANGE_THIS_TO_YOUR_PASSWORD');

$sql='SELECT
    idTask,
    descTask,
    deadline,
    idTechnical
    FROM tasks
    WHERE idTechnical  = :id
    ORDER BY deadline DESC';
$query = $db->prepare($sql);
$query->bindValue(':id', $_REQUEST['technical']);
$query->execute();
$count = $query->rowCount();

如果您刚刚开始使用PHP,我强烈建议您花一些时间熟悉PDO数据库查询。祝你好运和快乐

你应该有一个名字。然后您应该从$\u POST['name\u of_your\u select\u element']侧注:您应该引用变量
echo“$thing”您可能会得到意外的结果。
回显'.$thing'
$id
在您的搜索脚本中没有定义。@LauriOrgla感谢您的回复。你的建议对我有用。
<?php
 if (isset($_POST['Next'])) { 


if($_REQUEST['Next']=='Search') {
    {
        $sql="select idTask, descTask, deadline, idTechnical from tasks where idTechnical  = '$id' order by deadline desc";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    } 
}
 }
?>
<tr>
<td>Technical:</td>
<td>
    <select name="technical">
        <?php
            $query = "SELECT idTechnical, name FROM technicals";
            $result2 = mysql_query($query);
            $options="";
            while($row=mysql_fetch_array($result2)){
                echo '<option value='.$row["idTechnical"].'>
                    '.$row["name"].'
                    </option>';
            }
        ?>
    </select>
</td>
$sql='SELECT
    idTask,
    descTask,
    deadline,
    idTechnical
    FROM tasks
    WHERE idTechnical  = '.$_REQUEST['technical'].'
    ORDER BY deadline DESC';
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$db = new PDO('mysql:host=CHANGE_THIS_TO_YOUR_HOST_NAME;
    dbname=CHANGE_THIS_TO_YOUR_DATABASE',
    'CHANGE_THIS_TO_YOUR_USERNAME',
    'CHANGE_THIS_TO_YOUR_PASSWORD');

$sql='SELECT
    idTask,
    descTask,
    deadline,
    idTechnical
    FROM tasks
    WHERE idTechnical  = :id
    ORDER BY deadline DESC';
$query = $db->prepare($sql);
$query->bindValue(':id', $_REQUEST['technical']);
$query->execute();
$count = $query->rowCount();