多次在数据库中搜索表单元素

时间:2013-04-22 06:24:25

标签: php postgresql

我正在尝试学习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时,它只搜索一个表,即bacteria并返回相关信息(这里作为测试,我只获取row position 1 and row position 2处的信息。)

由于有多个表,如表drugs,用于存储用于治疗食物中毒的药物的信息,我想从相应的表中提取该信息。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试这个

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

但我认为最好的方法是规范你的表格。 :)