Php 在单个表单提交的if语句中,对单个字段进行多个更新查询

Php 在单个表单提交的if语句中,对单个字段进行多个更新查询,php,mysql,forms,Php,Mysql,Forms,我在做什么: 我向用户提供了进度条,当用户填写/清空表单中的字段时,进度条会增加或减少+/-10%,当用户提交表单时,进度条会更新到数据库中。此进度条告知用户用户完成了多少百分比配置文件 我面临的问题是: 我提供了多个更新查询,只要满足if语句,这些查询就会运行。所有的if语句和查询都正常工作,我已经检查过了。但数据库中进度条字段的值只更新一次,要么在用户填充该字段时增加,要么在用户清空该字段时减少。 如果用户在所有字段中更新,在这种情况下,它也会增加或减少10% 这是我的密码: <?

我在做什么:

我向用户提供了进度条,当用户填写/清空表单中的字段时,进度条会增加或减少+/-10%,当用户提交表单时,进度条会更新到数据库中。此进度条告知用户用户完成了多少百分比配置文件

我面临的问题是:

我提供了多个更新查询,只要满足if语句,这些查询就会运行。所有的if语句和查询都正常工作,我已经检查过了。但数据库中进度条字段的值只更新一次,要么在用户填充该字段时增加,要么在用户清空该字段时减少。 如果用户在所有字段中更新,在这种情况下,它也会增加或减少10%

这是我的密码:

<?
 include('includes/include.inc.php');
 protect_seeker_page();

 $loginLine=mysql_fetch_array(mysql_query
      ("select * from tb_user_login where   user_login_id='$_SESSION[SEEKER_ID]'"));
 $userLine=mysql_fetch_array(mysql_query
      ("select * from tb_user where user_login_id='$_SESSION[SEEKER_ID]'"));
 $metadataLine=mysql_fetch_array(mysql_query
      ("select * from tb_user_metadata where user_login_id='$_SESSION[SEEKER_ID]'"));


  $company=$userLine['user_progress']+10;
  $company2=$userLine['user_progress']-10;

  $skill=$userLine['user_progress']+10;
  $skill2=$userLine['user_progress']-10;

  $ind=$userLine['user_progress']+10;
  $ind2=$userLine['user_progress']-10;


  $resume=$userLine['user_progress']+10;
  $resume2=$userLine['user_progress']-10;

  if($_POST['Submit']=='Update'){

 if($userLine['user_company_name']=="" and $_POST['user_company_name']!=""){
 mysql_query
     ("update tb_user set user_progress='".$company."' 
         where user_login_id='$_SESSION[SEEKER_ID]'"); }

    if($userLine['user_skills_id']=="" and $_POST['user_skills']!="")
      {
 mysql_query("update tb_user set user_progress='".$skill."' 
      where user_login_id='$_SESSION[SEEKER_ID]'"); }

    if($userLine['user_resume_title']=="" and $_POST['user_resume_title']!=""){
 mysql_query("update tb_user set user_progress='".$resume."' 
      where user_login_id='$_SESSION[SEEKER_ID]'"); }
 if($userLine['user_industry_id']==0 and $_POST['industry_name']!=""){
echo mysql_query("update tb_user set user_progress='".$ind."' 
      where user_login_id='$_SESSION[SEEKER_ID]'"); }




if($_POST['user_company_name']=="" and $userLine['user_company_name']!=""){
mysql_query("update tb_user set user_progress='".$company2."' 
    where user_login_id='$_SESSION[SEEKER_ID]'");   }

if($_POST['user_skills']=="" and $userLine['user_skills_id']!=""){
    mysql_query("update tb_user set user_progress='".$skill2."' 
      where user_login_id='$_SESSION[SEEKER_ID]'"); }

if($_POST['user_resume_title']=="" and $userLine['user_resume_title']!=""){
mysql_query("update tb_user set user_progress='".$resume2."'
          where user_login_id='$_SESSION[SEEKER_ID]'"); }
if($_POST['industry_name']=="" and $userLine['user_industry_id']!=0){
mysql_query("update tb_user set user_progress='".$ind2."'
         where user_login_id='$_SESSION[SEEKER_ID]'");  }



        }


       ?>
使用以下代码:

$progress = $userLine['user_progress'];

  if($_POST['Submit']=='Update'){

  if($userLine['user_company_name']=="" and $_POST['user_company_name']!=""){
     $progress +=10;
  }

  if($userLine['user_skills_id']=="" and $_POST['user_skills']!=""){
     $progress +=10;
  }

  if($userLine['user_resume_title']=="" and $_POST['user_resume_title']!=""){
      $progress +=10;
  }
  if($userLine['user_industry_id']==0 and $_POST['industry_name']!=""){
      $progress +=10; 
  }

  if($_POST['user_company_name']=="" and $userLine['user_company_name']!=""){
    $progress -=10;
  }

  if($_POST['user_skills']=="" and $userLine['user_skills_id']!=""){
     $progress -=10;
  }

  if($_POST['user_resume_title']=="" and $userLine['user_resume_title']!=""){
      $progress -=10;
  }
  if($_POST['industry_name']=="" and $userLine['user_industry_id']!=0){
     $progress -=10;
  }
  mysql_query("update tb_user set user_progress='".$progress."'
         where user_login_id='$_SESSION[SEEKER_ID]'");  
  }
在您的代码中,您总是添加+/-10,其当前值在表中,因此它总是添加+/-10,而不是+/-20和+/-30,因此不。因此,您需要按照我的建议使用它

注意:不要使用mysql,因为它已被弃用。
始终使用mysqli_*或PDO


你能更详细地阐述你的问题吗?由于它没有清除所有的东西,我认为你可以使用这个用例here@BrokenHeartღ 在这段代码中,我所有的更新查询都在工作,但它仍然不仅仅是在一次提交时将值更改+/-10,即使值变成+/-20或+/-30或+/-40@Prafulla即使所有的
if语句
都有效,是否也使用了
case
correctly@Sonam小姐,请使用我在答案中发布的以下代码。这对你有用。@Sonam我很乐意帮助你。我叫高拉夫。将来你可以通过我的博客与我联系。查看我的博客。这个项目是由其他人启动的,这就是为什么我使用
mysql\u*
,否则我总是使用
mysqli\u*
谢谢你的建议!