2016-08-16 15 views
-1

私はPatientsと呼ばれる新しいテーブルを作成しようとしています。 Doctorが患者を持っているかどうかわからないので、私はすべての医師のために新しいテーブルをPHPで実装します(効率的ではありませんが、よくあります!)。別のテーブルとの接続を持つ新しいテーブルを作成する

Doctor Table.php

医師のテーブルの上に、各患者クリックした後、私は高揚患者テーブルに移動して、HTMLテーブルとしてそれを印刷することがあります。私は大きな患者のテーブルを作成し、データを引き出すために何か関連する医者をチェックすべきか、またはすべての単一の医師のためのテーブルを作成する必要がありますか?ところで、すべての患者テーブルに患者の機能が追加されます。

**THIS PART IS GOING TO Patient.PHP** 
    while($row = mysqli_fetch_assoc($result)) 
    { echo "<form action= 'Patients.php' method = 'POST'>"; 
     echo"<tr>"; 
      echo "<td>".$row[DoctorID]."</td>"; 
      echo "<td>".$row[name]."</td>"; 
      echo "<td>".$row[surname]."</td>"; 
      echo"<td>".$row[specialityID]."</td>"; 
     echo '<td><input class = button button2 type = submit name = Patients value = Patients /><td>'; 

      echo "</tr>"; 

    } 
**THIS PART IS THE PATIENT TABLE WHICH ALREADY AN EXISTING TABLE IN MYSQL DATABASE** 
$sql = "SELECT patientID,name,surname FROM Patients"; 
     $result = mysqli_query($conn, $sql); 
     if (mysqli_num_rows($result) > 0) 
     {  echo "<table>"; 
     echo "<tr>"; 
      echo "<th>PatientID</th>"; 
      echo"<th>Patient Name</th>"; 
      echo"<th>Patient Surname</th>"; 
      echo"</tr>"; 
       while($row = mysqli_fetch_assoc($result)) 
      {  echo"<tr>"; 
        echo "<td>".$row["patientID"]."</td>"; 
        echo "<td>".$row["name"]."</td>"; 
        echo "<td>".$row["surname"]."</td>"; 
        echo "<td><input class = 'button button3' type='button'   onclick = 'myFunction($row[patientID])' value = 'Düzenle'></td>"; 
        echo "</tr>"; 

      }  
+2

あなたのコードはどこですか? – user1234

+0

は私たちとコードを共有します。 –

+0

Doctorごとに個別のテーブルを作成しないでください。患者情報をすべて1つのテーブルに保存し、医師のプライマリキーを外部キーとして参照する必要があります。 [データ正規化](https://en.wikipedia.org/wiki/Database_normalization)を参照してください。 – Phylogenesis

答えて

0

は、私は大きな患者テーブルを作成し、 に関連気にいらない医師がデータをプルチェックする必要がありますか?あるいは、私はすべての単一の医師のためのテーブルを作成する必要があります。

すべての医者とすべての患者の間の関連付けのみを格納する1つのテーブルと、その関連付けを記述するフィールドを作成します。特許は、この医師に関連付けられているになったとき、それはフィールド

  • ドクターID(あなたの医師の主キーテーブル)
  • 患者ID(あなたの患者の主キーテーブル)
  • timeAddedを(持っているかもしれません)
  • 一人の患者が表には、テーブル内の重複医師と患者のリンクが存在しないことを確認するINDEX UNIQUE(doctor ID, patient ID)を持つべきである1人の医師

にリンクされているかについてです他のフィールド。

この表は、すべての医者およびすべての患者のためのものです。非常に重要なのは、医師や患者の情報(名前や電子メールなど)が保存されていないことです(医師と患者テーブルが別々の場合)。このテーブルの仕事は、アソシエーションとリンクだけを格納することです。

このデザインでは、医師ごとに別々の患者テーブルがあれば、はるかに難しいものを簡単に取得できます。例:

  • どの患者が最も多いのですか?
  • 最近6ヶ月間にさらに多くの患者さんを追加した医者はどれですか?
  • 複数の医者にリンクしている患者はどれですか?
+0

Waw、ı本当にそれを手に入れました。ありがとうございました。 – gaban

0

1)は、新たなtable使用にこの

2用relation使用foreign keyを作成しないでください)Patient Tableを作成し、doctor_idとしてfieldを追加します。あなただけの医師IDを渡すpatientsbuttonをクリックすると、フェッチid

doctor.phpとしてdoctor_idを持ってPatient tablefetchにすべての患者にqueryを実行すると、このフィールドには、関連する医師

3)のid'sを埋めます

echo '<td><a href="patients.php?id=' . $row['DoctorID'] . '">Patients</a></td>'; 

patients.php

if(isset($_GET['id'])) 
     { 
     $id = $_GET['id']; 
     $resuts = mysqli_query($con, "Select * FROM patients WHERE doctor_id='$id'"); 
// rest code to show patients 

} 
関連する問題