既存のトピックを調べました。問題の修正はありますが、それが正しい修正ではないことはわかっており、回避策を作成するよりも、これを正しく機能させることに関心があります。
私は、3 つのテーブル、診断、訪問、および治療があるプロジェクトを持っています。患者は診察を受け、治療を受けます。治療は診断のためのものです。
この情報をページに表示するには、患者の診断を表示してから、患者が来院した時間を表示し、その来院情報をクリックして治療情報を表示できるようにします。
これを行うには、php でこの関数を作成します。
<?
function returnTandV($dxid){
include("db.info.php");
$query = sprintf("SELECT treatments.*,visits.* FROM treatments LEFT JOIN visits ON
treatments.tid = visits.tid WHERE treatments.dxid = '%s' ORDER BY visits.dos DESC",
mysql_real_escape_string($dxid));
$result = mysql_query($query) or die("Failed because: ".mysql_error());
$num = mysql_num_rows($result);
for($i = 0; $i <= $num; ++$i) {
$v[$i] = mysql_fetch_array($result MYSQL_ASSOC);
++$i;
}
return $v;
}
?>
関数は機能し、治療と訪問の両方からのすべての行を 1 つの大きな関連付けとして表示します。配列の問題は、データベースに実際にあるよりも常に1行少ない行を返すことであり、その理由はわかりません。全部で 3 行ありますが、msql_num_rows() は 2 としか表示しませ($num = mysql_num_rows($result)+1;)
ん。