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