1

私はphpを学ぼうとしていますが、助けが必要なタスクに出くわしました.

背景情報 - 複数のテーブルを持つ postgresql データベースがあります。

必要なもの - HTML ページのフォームに何かを入力するとき、入力した内容に関連する情報を含むすべてのテーブルからすべての情報を抽出する必要があります。

例 - フォームに食中毒を入力するとします。すべてのテーブルにアクセスして、食中毒に関連するさまざまな情報を抽出する必要があります。

My code: (the connection part is not being posted as it works fine)


    <?php
            $result = pg_prepare($dbh, "Query1", 'SELECT * FROM Project.bacteria WHERE disease = $1');
            // if (pg_numrows($result) == 0)    { 
                // $result = pg_prepare($dbh, "Query1", 'SELECT * FROM Project.virus WHERE disease = $1');  
            // }

            //$sql = "SELECT * FROM Project.bacteria WHERE disease=";
            //$result = pg_query($dbh, $sql);
            $result = pg_execute($dbh, "Query1", array($disease));
            if (!$result) {
                    die("Error in SQL query: " . pg_last_error());
            }
            //$rows = pg_fetch_all($result)

    /*// iterate over result set
    // print each row*/
                while ($row = pg_fetch_array($result)) {
                        echo $row[0]." ".$row[1]. "<br />";
                    } 
?>

上記のコードの場合、入力food poisoningすると 1 つのテーブルのみが検索bacteriaされ、関連する情報が返されます (ここでは、テストとして の情報だけを取得しましrow position 1 and row position 2た)。

drugs食中毒を治すために使用される薬の情報を格納するテーブルのように、複数のテーブルがあるので、それぞれのテーブルからその情報を抽出したいと思います。

どんな助けでも大歓迎です。

4

1 に答える 1

1

これを試してください

SELECT * FROM bacteria WHERE disease = ''
UNION ALL
SELECT * FROM drugs where desease = ''

しかし、最善の方法はテーブルを正規化することだと思います。:)

于 2013-04-22T06:41:38.467 に答える