我尝试从三个表中删除一些数据,
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/