0

PHPでSQLステートメントのin 1関数を実行することは可能ですか?

私の SQL が実際に行うことは、データベース内の 3 つのテーブルからデータをフェッチすることです。現在、どの方法を使用すればよいかわかりません。内部結合がそれに飛び込みますが、適切な構文を忘れてしまいました。だから私はこれについて考えていました。

$qry_display = "SELECT student_id,
section_id,level,photo,address,father_occupation,father_phone,father_company,mother_occupation,
mother_phone,mother_company 
from tbl_er 
where student_id='$id' AND level="3rd Year"";

上記のステートメントは、生徒の履歴である tbl_er から情報を取得します。

$qry_display = "SELECT fname,
sex,
lname,
mname,
birth_date,
birth_place,
address,
father,
father_degree,
mother,
mother_degree,
from tbl_enroll where student_id='$id'";

上記のステートメントは、tbl_enroll から情報の一部を取得します。これらは、学生のコアの変更不可能なデータになります。また、最初のステートメントには、取得する「section_id」があります。私の考えは、その値を取得して、最後のSQLに使用することです。

$qry_display = "SELECT section_name,adviser_id,schoolyr 
from tbl_section 
where student_id='$id' AND section_id='$sid'";

section_id を取得する方法についての私の考えは、私が置く最後のステートメントの前にあります。

    $sid= section_id  (I am unsure if this will work.)

また、このステートメントは 1 つの関数で 3 つのステートメントすべてをトリガーしますか?

        $sql_display = mysql_query($qry_display) or die (mysql_error());

ありがとうございます。フィードバックをお待ちしております。

4

2 に答える 2

0

MySQL関数のファミリは、1 回の操作で複数のステートメントを処理しないことを思い出したようですmysql_query。最初のステートメントを実行してから、後続のステートメントをトランザクションでラップしたとしても、黙って破棄します。

そうは言っても、MySQL ファミリは非推奨です。2012年に新しいプロジェクトにMySQLi を使用する必要があります。;)

于 2012-08-21T03:03:39.610 に答える
0

これには多くの間違いがあり、バグを解決してもおそらく探しているものは得られないので、これを左結合を持つ 1 つの首尾一貫したクエリとして記述することから始めましょう (良い呼び出しです)。

$qry_display = "SELECT
            a.student_id, a.section_id, a.level, a.photo, a.address, a.father_occupation, a.father_phone, a.father_company, a.mother_occupation, a.mother_phone, a.mother_company,
            b.fname, b.sex, b.lname, b.mname, b.birth_date, b.birth_place, b.address, b.father, b.father_degree, b.mother, b.mother_degree,
            c.section_name, c.adviser_id, c.schoolyr
            FROM tbl_er AS a
            LEFT OUTER JOIN tbl_enroll AS b ON a.student_id = b.student_id
            LEFT OUTER JOIN tbl_section AS c ON a.section_id = c.section_id
            WHERE a.student_id=".$id." AND a.level='3rd Year'";

セクション/アドバイザーの関係は学生に依存しないため、最後の結合は学生 ID を気にしません。

于 2012-08-21T03:12:05.833 に答える