从form1 POST 过来的变量 例如 $_POST['a'] $_POST['b']... 非常多我如何根据这个变量来写一条 SQL语句?
如果我全部写好 update  xxx set a=xxx,b=xxx,...
那么可能 其中一部分是默认的值 比如 是空 或者是0 这不是我想更新的。我要更新的是那部分修改过的值。我现在的做法是 foreach 然后找出默认值不为0的变量 然后再组织成一个SQL 语句,总觉得这种方法不科学,是否有更好的
方法?例如POST 过来的变量 如何在提交前就判断好是否修改过 修改过的才提交. JS?感谢

解决方案 »

  1.   

    if($_POST['a']!=''){
     //update语句
    }
      

  2.   

    在前端部分就可以判断一次<form>里是否有空值,后端PHP也再进一次判断如1#。这种应用就是典型的数据完整性验证了。
      

  3.   

    去除 $_POST 中的空值项
    $_POST = array_diff( $_POST, array( '', 0 ) ); //你可以自行开列你认为需要去除的值如何在提交前就判断好是否修改过 修改过的才提交
    1、需要用ajax提交
    2、在获得焦点时暂存值
       在失去焦点时比较暂存值、当前值
       不同时保存对象姓名,以备后续的提交
      

  4.   

    Ok 从xuzuning 上学到了新的方法.那么现在我有了新的数组, 是不是仍然使用 foreach 来生成SQL语句?有没有其他的更简洁的方法组织成SQL语句? 
      

  5.   

    生成sql语句用foreach就是很简单的办法了
      

  6.   

    本帖最后由 xuzuning 于 2011-05-09 10:39:28 编辑
      

  7.   

    啊哈 又学到东西了.我原来是 用foreach 组织成一个SQL.当然 方法很笨就是用. 然后再正则过滤掉 SQL 前面生成的一个逗号...结贴.回帖的都有分.xuzuning 您没意见吧?当然最多的都是你的。咔咔