为什么赢得我的第一个sql语句运行

时间:2014-03-11 20:11:01

标签: php mysql sql

当我按下按钮时,我有这个if语句。我还有一个名为“input”的下拉选项表单。 我试图这样做,当按下按钮时,活动字段重置为'0',然后更新为“1”,它等于输入字段。我得到第二部分工作,但第一部分不起作用

//get table
$sql = "SELECT * FROM  Widget";

//name variable
$result2=mysqli_query($dbc, $sql);

//button begins
if(isset($_POST['Wactive'])) {
    //take the  input and set it to a variable
    $id = $_POST['input'];

    // reset the active field. This doesn't work but the sql works 
    // when I do it directly in the database
    $sql = "Update `Widget` SET Active = '0'";

    //set active to 1 where  id = the input(this works)
    $sql = "Update `Widget` SET Active = '1' WHERE `Widget_ID` = '$id'";
}

2 个答案:

答案 0 :(得分:2)

$sql使用两次,第二次写入第一次,因此它不会运行。此外,没有显示执行任何查询的代码

答案 1 :(得分:1)

首先,您需要过滤数据。然后执行查询。最好用数字命名查询,不要覆盖任何内容。

if(isset($_POST['Wactive']))
{
    $id = intval($_POST['input']);
    $sql1 = "Update `Widget` SET Active = '0'";
    $query1 = mysqli_query($dbc, $sql1);
    $sql2 = "Update `Widget` SET Active = '1' WHERE `Widget_ID` = $id";
    $query2 = mysqli_query($dbc, $sql2);
}