我是 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>";
}
}
}
?>
最佳答案
使用 INNER JOIN
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 Injection Vulnerability .
关于PHP/MYSQL 从一个表获取引用,然后从另一个表获取结果。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149430/