我有一个表'结果':
会有一个页面,所有症状都将在复选框中。当任何人检查其中一些并单击提交按钮时,该页面将重定向到另一个页面,该页面将显示可能的结果。
可能的结果:如果(头痛、体温、头晕)被选中,那么答案将是肺炎和疟疾。导致这些症状在这两种疾病中很常见。
我做了桌子。但想不到查询。请任何人给我一个想法/解决方案。
我正在使用 php-mysql。
#tblDiseases - holds all disease names
######################################
diseaseID | disease
-----------------------
1 Tifoyd
2 Jondis
3 Malarya
4 Pneomonia
5 Dengu
#tblSymptoms - holds all symptoms
#################################
symptomID | symptom
-------------------------
1 Headache
2 Temparature
3 Less Pain
4 Sever Pain
5 Mussle Pain
#tblRel - holds relation between diseases and symptoms
######################################################
relID | dieaseID | symptomID
-----------------------------
1 1 1
2 1 2
3 3 1
4 3 2
5 3 3
When 3 symptoms are selected, the query would look like:
SELECT tblDiseases.disease
FROM tblRel
LEFT JOIN tblDiseases ON tblRel.diseaseID = tblDiseases.diseaseID
WHERE tblRel.symptomID = '1' AND tblRel.symptomID = '2' AND tblRel.symptomID = '3'
这将选择具有症状的疾病Headache
,Temperature
并且Less Pain
。因此查询可能会显示结果Malaria
(基于示例)。
我没有测试过这段代码。:) 我希望它会工作。
正如其他人已经说过的那样优化你的数据库然后尝试。如果为下一个选项尝试:
$arrInput = $_POST['your check Var Name'];
$strSQL = sprintf("select * from result where symptom in ('%s')", implode("','", $arrInput));
$objRes = mysql_query( $strSQL );