【问题标题】:MySQL UPDATE with WHERE ANDMySQL UPDATE 与 WHERE AND
【发布时间】:2012-10-23 13:03:26
【问题描述】:
if ('$o1s' == 1) {
    $ocode = 1;
    $query6 = "UPDATE `offer_det` SET `ocode`='$ocode' WHERE `fname`='$fname' AND `lname`='$lname'";
           $result6 = mysql_query($query6)or die(mysql_error()); 
}

$o1s 是一个单选选择,本质上 1 = 已选择,0 = 未选择。 ocode 是数据库中要更新的行。 $fname 是登录用户的名字,$lname 是登录用户的姓氏。

我的想法是,如果选择了 o1s,则将 ocode 更新为 1,其中名字和姓氏匹配。不过,我没有看到对结果采取任何行动。这是一个会话发布表单。我什至可以在 UPDATE 期间使用 AND 吗?

【问题讨论】:

    标签: php mysql if-statement


    【解决方案1】:

    这一行需要这样,

    if ($o1s == 1) { //checking a variable, not a string with a '$'
    

    此外,检查$_POST 数组以获取o1s 的对应值,当它被选中和未被选中时,您必须在isset 未选中时进行检查。是的,您可以将AND 用于update

    【讨论】:

    • 谢谢哥们。我正在努力学习这一点,我希望下周切换到 OO MySQLi。
    • 嗯,我仍然没有看到对此采取任何行动。该表格将发布没有问题,但没有数据正在更新。我的帖子声明一定有问题。 $o1s = $_POST['o1s'];
    • 一个选择标签,例如。 <select id="select" name="o1s"><option value='1'/></select> would give $_POST['o1s'] = '1' when option 1 is selected.如果未选中,则 $_POST 中不会为 o1s 设置任何键。在 $_POST 上执行var_dump 以查看是否在选择时获得了所需的值。
    • 你最终必须有一个 isset 才能让 MySQL UPDATE 运行。感谢您的帮助,我很感激。
    【解决方案2】:

    您确实将字符串 '$os1' 与 1 进行比较。

    这总是会失败的。

    去掉 ' 就可以了。

    例如

    if($os1==1) //this will pass if $os1 equals the number 1
    
    if('$os1'==1) // this will never pass cause
                  // you compare the string "$os1" with the integer number 1
    

    【讨论】:

      猜你喜欢
      • 2011-06-28
      • 1970-01-01
      • 2019-02-03
      • 2023-02-25
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多