PHP如果条件不起作用

PHP如果条件不起作用,php,json,if-statement,Php,Json,If Statement,我的html表单 <form id="myForm"> <label for="sel1">Select Class:</label> <select class="form-control" id="class_name"> <?php $query=$con->query("SELECT * FROM class ORDER BY id ASC") or die($con->error);

我的html表单

<form id="myForm">
    <label for="sel1">Select Class:</label>
    <select class="form-control" id="class_name">
    <?php $query=$con->query("SELECT * FROM class ORDER BY id ASC") or die($con->error);
        while($row=$query->fetch(PDO::FETCH_ASSOC)){ ?>
            <option value="<?php echo $row['id']?>"><?php echo $row['class_name']?></option>
        <?php } ?>
     </select>
    <label>Add Section: </label>
    <label class="checkbox-inline"><input type="checkbox" name="section_name" value="A">A</label>
    <label class="checkbox-inline"><input type="checkbox" name="section_name" value="B">B</label>
    <label class="checkbox-inline"><input type="checkbox" name="section_name" value="C">C</label>
</form>
阿贾克斯

我通过ajax在数据库中插入数组数据。数据插入成功,但未实现任何条件。当我尝试实现if条件时,它不起作用。以下代码中的错误是什么

<?php
include "connect.php";
$class_id = $_POST['class_id'];
$section_name = $_POST['section_name'];
$section_name = implode(",",$section_name);
$query=$con->query("SELECT * FROM section") or die($con->error);
while($row=$query->fetch(PDO::FETCH_ASSOC)){
    if(($class_id==$row['class_id'])&&($section_name==$row['section_name'])){
        echo json_encode('Section -'.$section_name.' has already assigned in '.$class_id);
    }
    else{
        $query2=$con->query("INSERT INTO section(class_id,section_name) VALUES('$class_id','$section_name')") or die($con->error);
    echo json_encode($section_name);
    }
}
?>

您正在内爆$\u POST分区列表

$section_name = implode(",",$section_name);
因此,这种情况可能不起作用:

$section_name==$row['section_name'] 

根据您的$\u POST section排序

是否有错误?输出是什么?记录class_id$row['class_id']$section_name$row['section_name']中的内容,并检查这是否是预期值既然我们不知道您的数据是什么样子,或者您想要什么行为,而且您没有提到发生任何异常,我们就不能说到底是什么错了-首先,我们不知道您认为哪些行为是错误的,哪些行为是正确的。另外,请注意:您的代码容易受到SQL注入攻击。您应该使用参数化查询和准备好的语句来帮助防止攻击者使用恶意输入值破坏您的数据库。给出了风险的解释,以及如何使用PHP/mysqli安全地编写查询的一些示例。不要像这样将未初始化的数据直接插入SQL。最好单独检查节名,而不是一个大字符串。这也表明您的数据库设计是错误的,您不应该在关系数据库的一个字段中存储多个值。这使得重新获取数据项变得更加困难,并且很难做其他事情,比如计算每个项目记录了多少,诸如此类的事情。您应该为每个节名存储一行,所有这些都具有相同的类id。这是一种可能的解释,但实际上并不是一种解决方案。如果你要写一个答案,你也必须解释如何解决它
$section_name==$row['section_name']