2015-05-29 46 views
0

我正在製作與PHP和MySQL中的患者診斷相關的電子醫療系統。我在數據庫中進行下面的表格與以下記錄:MySQL中的疾病 - 症狀關係

Illness(illness_id(PK), illness_code,illness_name) 
Symptom(symptom_id, illness_id(FK),symptom_name). 

現在,我想要做的是,我會寫在搜索欄中症狀的名稱,然後點擊按鈕後,相關的疾病應該輸出。你能告訴我SQL查詢會輸出適當的疾病嗎?

+1

你有什麼迄今所做? –

+0

請包括您在您的問題中嘗試過的內容。 – Epodax

+0

@PradnyaBolli:請僅使用內聯代碼格式(反向)來格式化代碼或控制檯I/O。像MySQL這樣的技術只是專有名詞,所以大寫字母就足夠了。 – halfer

回答

0

請試試這個。當您檢索搜索欄爲變量的症狀值,說symptom_name_provided_in_search_bar,您可以使用該值在下面的查詢

select illness_name 
from illness a, symptom b 
where a.illness_id = b.illness_id 
and b.symptom_name = :symptom_name_provided_in_search_bar 
0

對於這個工作,你應該只創建一個表疾病2行: illnessName和疾病症狀。注意:這隻有在症狀完全按照數據庫中寫入的情況下才有效。

<?php 
$host = 'yourmysqlhost'; 
$user = 'yourmysqluser'; 
$pass = 'yourmysqlpassword'; 
$db = 'yourmysqldatabase'; 
$symptom = $_POST['symptom']; 
$connect = mysqli_connect($host, $user, $pass, $db); 
$sanitizedSymptom = mysqli_real_escape_string($connect, $symptom); 
$query = mysqli_query($connect, "SELECT * FROM illness WHERE illnessSymptom = '".$sanitizedSymptom."'"); 
if(mysqli_num_rows($query) == 0) 
{ 
echo '<p>No results...</p>'; 
} 
else 
{ 
while($row = mysqli_fetch_assoc($query)) 
{ 
echo '<h1>'.$row['illnessName'].'</h1>'; 
echo '<p>Symptom: '.$row['illnessSymptom'].'</p>'; 
echo '<br>'; 
} 
} 
?> 

編輯:

要查找的症狀近似與數據庫中的症狀,查詢應該是這樣的:

$query = mysqli_query($connect, "SELECT * FROM illness WHERE illnessSymptom LIKE '%".$sanitizedSymptom."%'");