Поиск элемента формы в базе данных несколько раз

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 он ищет только одну таблицу, т.е. bacteria и возвращает связанную информацию (здесь, в качестве теста, я получил только информацию в row position 1 and row position 2).

Поскольку существует несколько таблиц, таких как табличные drugs, в которых хранится информация о наркотиках, используемых для лечения пищевого отравления, я хотел бы извлечь эту информацию из соответствующей таблицы.

Любая помощь будет оценена по достоинству.

  • 0
    Я думаю, что вы ищете оператор union SQL.
  • 0
    я хочу знать, что вся таблица содержит болезнь столбца?
Теги:

1 ответ

1

Попробуй это

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

но я думаю, что лучший способ - нормализовать ваши таблицы. :)

  • 0
    У меня нет разных столбцов в таблицах. Могу ли я выполнить правое / левое соединение с несколькими таблицами?
  • 0
    хм .. я думаю, что вы можете ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню