Я пытаюсь изучить 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
, в которых хранится информация о наркотиках, используемых для лечения пищевого отравления, я хотел бы извлечь эту информацию из соответствующей таблицы.
Любая помощь будет оценена по достоинству.
Попробуй это
SELECT * FROM bacteria WHERE disease = ''
UNION ALL
SELECT * FROM drugs where desease = ''
но я думаю, что лучший способ - нормализовать ваши таблицы. :)
union
SQL.