У меня есть таблица «Результат»:
там будет страница, где все симптомы будут в поле «Флажок». Когда кто-нибудь проверяет некоторые из них и нажимает кнопку SUBMIT, страница переадресовывается на другую страницу, где будет отображаться возможный результат.
Возможный результат: если (Головная боль, Температура, Легкие головные уборы) проверяется, то ответ будет Pneomonia и Malarya. потому что эти симптом распространены в этих двух случаях.
я сделал таблицу. Но не может думать о запросе. Пожалуйста, дайте мне идею / решение.
#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
(на примере).
Я не тестировал этот код. 🙂 Я надеюсь, что это сработает.
как уже сказали другие, оптимизируйте свой дБ, а затем попробуйте. Если для следующей опции попробуйте:
$arrInput = $_POST['your check Var Name']; $strSQL = sprintf("select * from result where symptom in ('%s')", implode("','", $arrInput)); $objRes = mysql_query( $strSQL );