使用php-mysql进行症状检查

时间:2012-04-10 08:30:20

标签: php mysql

我有一张表'结果':

enter image description here

将有一个页面,其中所有symptomp将出现在复选框中。当有人检查其中一些,然后单击“提交”按钮时,该页面将重定向到另一个页面,在该页面中将显示可能的结果。

可能的结果:如果(头痛,温度,Lightheadnes)被检查,那么答案将是Pneomonia和Malarya。导致这些症状在这两种疾病中很常见。

我已经摆好桌子了。但是想不出来的查询。请有人给我一个想法/解决方案。

我正在使用php-mysql。

2 个答案:

答案 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'

这将选择症状为HeadacheTemperatureLess 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 );