从下拉列表中调用一个值来更新查询

时间:2013-04-20 16:20:13

标签: php mysql

我正在尝试使用下拉列表创建一个页面,我希望用户添加他想要的电影名称并通过mysql查询将其发送到数据库。

现在,这就是我从数据库中获取下拉列表所做的工作(此部分正在运行)

<select name="cinema_id" id="cinemaid">
    <?php
    require('../classes/cinema_class.php');
    $cinemas = cinema::get_cinemas_name(); 
$cinema_id = $cinema['cinema_id'];
$cinema_name = $cinema['cinema_name'];

    foreach($cinemas as $cinema)
    {
        $selected = '';
        if( $cinema['cinema_id'] == $_GET['cinema_id'])
        {
            $selected = 'select="selected"';
        }

        echo "<option {$selected} >
            {$cinema['cinema_name']}
            </option>";
    }
    ?>
</select>

这是要更新的mysql查询

<?php
$theaterid=$_POST['theaterid'];
$theatername=$_POST['theatername'];
$cinemaid=$_POST['cinemaid'];
if(empty($theatername)){  
echo  "Theater Name is a must";
}
else{
$update_movie=mysql_query("UPDATE `memoire`.`theater` 
            SET `theater_name`= '$theatername',`cinema_id`= '$cinemaid' //the $theatername is working, i think the $cinemaid is wrong
            WHERE `theater_id`='$theaterid'");
if($update_movie)
{ echo "Add Succesfull";}
else
{ echo "error in registration".mysql_error(); }
}?>

我认为问题是如何调用下拉列表中的值并将其发送到更新

顺便说一下,页面打印: registration中的错误无法添加或更新子行:外键约束失败(memoiretheater,CONSTRAINT theater_ibfk_1 FOREIGN KEY(cinema_id)REFERENCES cinemacinema_id)ON UPETE CASCADE ON UPDATE CASCADE)

4 个答案:

答案 0 :(得分:0)

我认为cinema_id是当前的cinema_name。改变这一行:

echo "<option {$selected} >

echo "<option {$selected} value='{$cinema[cinema_id]}' >

答案 1 :(得分:0)

在第一个代码段中,您需要拥有一个值属性。

echo "<option value='{$cinema['cinema_id']}' {$selected} >
            {$cinema['cinema_name']}
            </option>";

这至少会将正确的数据发布到服务器。在第二个片段中,您引用的是html select的id,而不是名称。你应该使用这个名字。

$cinemaid=$_POST['cinema_id']; // notice the underscore

这应该会在发布后在服务器上为您提供正确的值。

作为旁注,您的脚本向SQL InjectionCross-Site Scripting开放。你可能想看看那些。

答案 2 :(得分:0)

我想我现在可以问一个更好的问题了。 在我的数据库中,我需要添加cinema_id。 下拉列表给我cinema_name ...所以我需要用户选择cinema_name但是我需要将它的cinema_id添加到更新查询

谢谢

答案 3 :(得分:0)

此问题与您上面的代码段无关,而是您在数据库中设置外键的方式。你可以发布你上面引用的表的结构以及电影表,指出你如何设置你的参考键吗?