0

我有一个表'结果':

在此处输入图像描述

会有一个页面,所有症状都将在复选框中。当任何人检查其中一些并单击提交按钮时,该页面将重定向到另一个页面,该页面将显示可能的结果。

可能的结果:如果(头痛、体温、头晕)被选中,那么答案将是肺炎和疟疾。导致这些症状在这两种疾病中很常见。

我做了桌子。但想不到查询。请任何人给我一个想法/解决方案。

我正在使用 php-mysql。

4

2 回答 2

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

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'

这将选择具有症状的疾病HeadacheTemperature并且Less Pain。因此查询可能会显示结果Malaria(基于示例)。

我没有测试过这段代码。:) 我希望它会工作。

于 2012-04-10T09:06:32.940 回答
0

正如其他人已经说过的那样优化你的数据库然后尝试。如果为下一个选项尝试:

$arrInput = $_POST['your check Var Name'];
$strSQL = sprintf("select * from result where symptom in ('%s')", implode("','", $arrInput));
$objRes = mysql_query( $strSQL );
于 2012-04-10T09:11:46.363 回答