PHP多个if语句只执行最后一个语句

PHP多个if语句只执行最后一个语句,php,mysql,Php,Mysql,我知道类似的问题已经被问了很多次,我已经搜索了一遍,但找不到一个解决我所遇到问题的答案 我有一个包含多个textarea的表单,可以更新mysql条目,我希望PHP在更新条目之前确保textarea中有内容。当我只更新了一个条目时,这种方法有效,但当我一次更新多个条目时,只更新最后一个条目。我尝试使用else if,在这种情况下,只更新第一个if。如何使其更新已输入文本的所有条目 在我的代码中,表单输入名称与列名匹配 $value = $_POST['titleLeft']; $value2 =

我知道类似的问题已经被问了很多次,我已经搜索了一遍,但找不到一个解决我所遇到问题的答案

我有一个包含多个textarea的表单,可以更新mysql条目,我希望PHP在更新条目之前确保textarea中有内容。当我只更新了一个条目时,这种方法有效,但当我一次更新多个条目时,只更新最后一个条目。我尝试使用else if,在这种情况下,只更新第一个if。如何使其更新已输入文本的所有条目

在我的代码中,表单输入名称与列名匹配

$value = $_POST['titleLeft'];
$value2 = $_POST['textLeft'];
$value3 = $_POST['imgName'];
$value4 = $_POST['titleRight'];
$value5 = $_POST['textRight'];

if (strlen($value) > 0){
    $sql = "UPDATE classesSpecial SET titleLeft = '$value' WHERE id = '1'";
}

if (strlen($value2) > 0){
    $sql = "UPDATE classesSpecial SET textLeft = '$value2' WHERE id = '1'";
}

if (strlen($value3) > 0){
$sql = "UPDATE classesSpecial SET imgName = '$value3' WHERE id = '1'";
}

if (strlen($value4) > 0){
    $sql = "UPDATE classesSpecial SET titleRight = '$value4' WHERE id = '1'";
}

if (strlen($value5) > 0){
    $sql = "UPDATE classesSpecial SET textRight = '$value5' WHERE id = '1'";
}

您正在使用每个if覆盖sql查询。
您还应该执行if语句中的命令。

您每次都使用相同的变量
$sql

$value = $_POST['titleLeft'];
$value2 = $_POST['textLeft'];
$value3 = $_POST['imgName'];
$value4 = $_POST['titleRight'];
$value5 = $_POST['textRight'];

if (strlen($value) > 0){
    $sql1 = "UPDATE classesSpecial SET titleLeft = '$value' WHERE id = '1'";
}

if (strlen($value2) > 0){
    $sql2 = "UPDATE classesSpecial SET textLeft = '$value2' WHERE id = '1'";
}

if (strlen($value3) > 0){
$sql3 = "UPDATE classesSpecial SET imgName = '$value3' WHERE id = '1'";
}

if (strlen($value4) > 0){
    $sql4 = "UPDATE classesSpecial SET titleRight = '$value4' WHERE id = '1'";
}

if (strlen($value5) > 0){
    $sql5 = "UPDATE classesSpecial SET textRight = '$value5' WHERE id = '1'";
}

这是因为您一直在覆盖
$sql
。一种解决方案是对每个post请求执行此操作:

if((strlen($value) > 0) {
  $sql[] = "UPDATE classesSpecial SET titleLeft = '$value' WHERE id = 1";
}
$sql[]
表示您正在向数组添加值,以后可以使用该数组处理所有请求。然后,在脚本结束时,您将执行以下操作以执行SQL:

foreach($sql as $query) {
  mysqli_query($db, $query)or die(mysqli_error($db));
}

您没有执行查询。我猜你是在之后做的,但是每次评估一个条件时,你都会覆盖
$sql
,这不是一个直接的答案,但请仔细阅读和。感谢所有回答的人,我不希望在早上之前完成这项工作。