0

私はテーブル「結果」を持っています:

ここに画像の説明を入力

すべての症状がチェックボックスに表示されるページがあります。誰かがそれらのいくつかをチェックして [送信] ボタンをクリックすると、ページは別のページにリダイレクトされ、可能な結果が表示されます。

考えられる結果: (頭痛、体温、立ちくらみ) がチェックされている場合、答えは肺炎とマラリアになります。これらの症状は、これら 2 つの疾患に共通する原因です。

私はテーブルを作りました。しかし、クエリを考えることができません。誰か私にアイデア/解決策を教えてください。

私は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

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(例に基づく)。

このコードはテストしていません。:)うまくいくことを願っています。

于 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 に答える