我想从三个表中删除一些数据,无法删除数据库行 - PHP/MySQL的
1: - 疾病 2: - jnctn_ailments_symptoms 3: - 症状
我试着如果不是从症状表中删除症状,则先从连接表中删除链接,然后删除疾病(反之亦然),然后最后检查与其他疾病的任何其他链接的症状。 但我没有在foreach循环中的步骤,我正在检查疾病发生之外的疾病删除。一切都很好,但是当涉及到删除症状时,我得到了mysql错误“您的SQL语法中有错误;请查看与您的MySQL服务器版本相对应的手册,以找到在'第1行'附近使用的正确语法。
我症状检索成功,但不删除查询不工作,以某种方式。
请看下面的代码,让我知道我错了。
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'“;,拼接等,没有什么工作
您是否尝试过回显您的查询并查看它们是否有效? – mkaatman
我做了,并得到如下内容:SELECT * FROM jnctn_ailments_symptoms WHERE FK_symptomID = 206,它看起来很好。你说什么? – BeardGuy
这是一个查询,你至少还有几个。回声他们所有,看看你正在处理。手动运行这些查询并查看它们是否工作。 – mkaatman