php - 无法使用 foreach 循环删除数据库行 - php/mysql

标签 php mysql foreach

我尝试从三个表中删除一些数据,

1:- 疾病 2:- jnctn_ailments_symptoms 3:-症状

我尝试首先从连接表中删除链接,然后删除疾病(反之亦然),然后最后检查与其他疾病的任何其他链接的症状,如果没有从症状表中删除症状。 但我在 foreach 循环中一步失败,我正在检查已删除的疾病旁边是否出现症状。一切都很好,但是当涉及到删除症状时,我收到 mysql 错误“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行 '' 附近使用的正确语法”。

我成功检索了症状的 ID,但不知何故,删除查询不起作用。

请看下面的代码,让我知道我错在哪里。

if(isset($_GET['del']))
{
    $delID = $_GET['del'];



    $originalSymptoms="";
    $symptomO[] = array();
    echo $delID;
    $symp = "SELECT symptomID  FROM symptoms 
            INNER JOIN jnctn_ailments_symptoms
            ON jnctn_ailments_symptoms.FK_symptomID= symptoms.symptomID
            INNER JOIN ailments
            ON ailments.ailmentID = jnctn_ailments_symptoms.FK_ailmentID
            WHERE ailments.ailmentID IN ('".$delID."')";


    mysql_select_db($dbName);
    $sympRes = mysql_query($symp,$con) or die(mysql_error());

        while($symprow = mysql_fetch_assoc($sympRes))
             {
               if(empty($originalSymptoms))
               {
                $originalSymptoms = $symprow['symptomID'];
               }
                else
                {
                $originalSymptoms = $originalSymptoms.",".$symprow['symptomID']; 
                }
              }




   echo $originalSymptoms;


     $newSymptoms = explode("," , $originalSymptoms);
    foreach($newSymptoms as $symptom)
    {
    $originalSymptomsArray[] = $symptom;

    }
       echo count($originalSymptomsArray);

        $delAilment = "DELETE FROM ailments WHERE ailmentID='$delID'";
    $delAilmentResult = mysql_query($delAilment,$con) or die(mysql_error());

   $delLink = "DELETE FROM  jnctn_ailments_symptoms WHERE FK_ailmentID ='$delID'";
   $delLinkResult = mysql_query($delLink,$con) or die(mysql_error());

    foreach($originalSymptomsArray as $symptom)
    {
        echo $symptom."<br>";




        $sql2 = "SELECT * FROM jnctn_ailments_symptoms WHERE FK_symptomID=".$symptom;
        $result2 = mysql_query($sql2,$con);
        $count = mysql_num_rows($result2);
        if(!$result2 || $result2 != 0)
        {
            echo mysql_error();
            $delSymptom = false;
        }
        else
        {
            $delSymptom = true;
        }


        if($delSymptom)
        {

            $sqlDel = "DELETE FROM symptoms WHERE symptomID ='$symptom'";
            $delResult = mysql_query($sqlDel,$con)or die(mysql_error());
            if(!$delResult)
            {
                echo mysql_error();
            }
            else
            {
                echo "Symptoms Deleted!";
            }
        }




    }

我尝试过 FK_symptomID='$symotom'"; 、串联等,但没有任何效果。

最佳答案

尝试按如下方式连接所有提到的查询,

$sqlDel = "DELETE FROM symptoms WHERE symptomID ='".$symptom."'";

关于php - 无法使用 foreach 循环删除数据库行 - php/mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43076412/

相关文章:

javascript - 在 PHP 中访问 JavaScript 数据以获取 HTML 列表

php - 如何构造 PDOStatement 类?

php - 从MySQL临时表获取数据的问题

php - PDO DELETE 还创建了一个新的 INSERT

JavaScript forEach : mutate elements

java - 奇怪的 for-each 循环 java

linq - linq/lambda 中的多行 foreach 循环

php - 将数据从php插入数据库mysql表

php - mysql联合查询返回php数组中相同的列名

Mysql:正向主机查找失败:未知主机