sql UPDATE row ::如果输入为空则保留当前值 [英] sql UPDATE row::leave present value if input empty

查看:159
本文介绍了sql UPDATE row ::如果输入为空则保留当前值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新的,我不知道这是一个php问题或sql,但我有一个没有必要字段的窗体,当提交它更新数据库行中的列。目前,当表单提交时,如果输入为空,它将用空白空间更新相应的列,并删除曾经存在的值。我想要弄清楚的是如何使表单提交,如果一个输入值为空,它不更新数据库列。

I'm new to this and I'm not sure if this is a php question or a sql, but I have a form with no required fields where when submit it updates columns in a database row. Currently, when the form is submitted if an input is left empty it updates the corresponding column with the empty space and erasing the value that was once there. What I am trying to figure out is how to make it so upon form submission, if an input value is empty, it doesnt update the database column.

if ( isset($_POST['submit']) ) {
    $user = $_SESSION['user_name'];
    $signature = $mysqli->real_escape_string($_POST['signature']);
    $skype = $mysqli->real_escape_string($_POST['skype']);
    $facebook = $mysqli->real_escape_string($_POST['facebook']);

    $insert = $mysqli->query("
    UPDATE users 
    SET u_signature='$signature', u_skype='$skype', u_facebook='$facebook' 
    WHERE u_name='$user'
    ") or die ($mysqli->error);


推荐答案

<?php
if ( isset($_POST['submit']) ) {

    $user = $_SESSION['user_name'];
    $signature = mysql_real_escape_string($_POST['signature']);
    $skype = mysql_real_escape_string($_POST['skype']);
    $facebook = mysql_real_escape_string($_POST['facebook']);
    if(!empty($signature)){
     $update_fields[] = "u_signature='$signature'";
    }
    if(!empty($skype)){
     $update_fields[] = "u_skype='$skype'";
    }
    if(!empty($facebook)){
     $update_fields[] = "u_facebook='$facebook'";
    }
    if(count($update_fields) > 0){
      $nonempty_fields = implode(", ", $update_fields);
      $insert = mysql_query("
      UPDATE users 
      SET $nonempty_fields
      WHERE u_name='$user'
      ") or die(mysql_error());
    }
    else{
     echo "must not update the db because all required fields are empty";
    }

}
?>

这篇关于sql UPDATE row ::如果输入为空则保留当前值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆