我有一张表'结果':
将有一个页面,其中所有symptomp将出现在复选框中。当有人检查其中一些,然后单击“提交”按钮时,该页面将重定向到另一个页面,在该页面中将显示可能的结果。
可能的结果:如果(头痛,温度,Lightheadnes)被检查,那么答案将是Pneomonia和Malarya。导致这些症状在这两种疾病中很常见。
我已经摆好桌子了。但是想不出来的查询。请有人给我一个想法/解决方案。我正在使用php-mysql。
答案 0 :(得分:1)
#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
当选择3个症状时,查询将如下所示:
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
(基于示例)。
我还没有测试过这段代码。 :) 我希望它会起作用。
答案 1 :(得分:0)
正如其他人已经说过优化你的数据库然后尝试。如果是下一个选项,请尝试:
$arrInput = $_POST['your check Var Name'];
$strSQL = sprintf("select * from result where symptom in ('%s')", implode("','", $arrInput));
$objRes = mysql_query( $strSQL );