PHP / MYSQL Получить ссылку из одной таблицы, а затем результаты из другой.

Я новичок в PHP. Я сделал следующее, и это работает, но я просто думаю, что должен быть лучший способ сделать это, и то, что я сделал, это очень грязный хак.

Итак, у меня есть словарь, где каждое слово имеет ссылку, соответствующую другому слову в другой таблице. Я хочу, чтобы искомое слово Ar искало таблицу AR, чтобы увидеть, есть ли совпадение. Если это так, то верните ссылку на это слово, затем перейдите к таблице EN и найдите, существует ли эта ссылка там. Затем верните все слова с этим ссылочным номером.
Следующее делает работу, но мне было интересно, есть ли лучший способ сделать это.

<?php
if (!empty($_POST)){
$word = $_POST["word"];
$result = mysql_query("SELECT ref FROM en_a_ar WHERE ar = '$word'");
while($row = mysql_fetch_array($result)) {
$searchRef = $row['ref'];
$searchResult = mysql_query("SELECT en FROM en_a WHERE ref = '$searchRef'");
while($row = mysql_fetch_array($searchResult)) {
echo  $row['en'];
echo "<br>";
}

}
}
?>

0

Решение

Используйте ВНУТРЕННЕЕ СОЕДИНЕНИЕ

SELECT
en_a.en
FROM
en_a
JOIN
en_a_ar
ON
en_a_ar.ref = en_a.ref
WHERE
en_a_ar.ar = '$word'

Как уже говорили другие, вам нужно дезинфицировать ваш вклад $word так как он исходит от клиента и создает Уязвимость SQL-инъекций.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]