기존 항목을 점검했습니다. 내 문제에 대한 해결책이 있지만 올바른 해결 방법이 아니라는 것을 알고 있으며 해결 방법을 만드는 것보다이 작업을 올바르게 만드는 데 관심이 있습니다.내부 조인과 mysql_num_rows() 사용은 항상 1 줄을 더 줄입니다.
나는 테이블, 진단, 방문 및 치료가 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 개 ASSOC으로 방문에서 모든 행을 인 원하는 표시됩니다. 배열 문제는 항상 데이터베이스에 실제로보다 1 행을 반환하고 나는 이유를 모르겠습니다. 총 3 행이 있지만 msql_num_rows()는 2로만 표시합니다. 제 해결 방법은 1을 추가하는 것이 었습니다. ($num = mysql_num_rows($result)+1;)
하지만 올바른 것이 좋습니다.
코드를 형식화하면 사람들이 쉽게 질문에 답변 할 수 있으므로 쉽게 읽을 수 있습니다. –
PHP를 배우고 있다면, mysqli 나 PDO를 사용해야한다. (http://www.php.net/manual/en/mysqlinfo.api.choosing.php) mysql 함수. –
모두에게 감사드립니다. 나는 for 루프에서 ++ $ i를 보았고 거기에서도 그것을 보지 못했고, 전체 시간 내게 완전히 보이지 않았습니다. 그것을 잡아 주셔서 감사합니다. 이제 작동합니다. 새로운 기능은 내가 그들에 대해 알지 못했던 뉴스입니다. 링크 덕분입니다. – Binxalot