PHP MySQL多个搜索词,使用数组进行词到词的翻译

时间:2019-03-17 07:18:24

标签: php mysql arrays

对于php来说还很陌生,目前正在使用MySQL数据库作为翻译源来进行多数组搜索的词对词翻译器。我正在使用具有2列的1表。第一列是语言1,第二列是语言2。语言2是语言1的翻译。该过程是我想搜索多种翻译形式的语言1,并显示翻译2的输出。例如,假设用户输入语言1的“ word3 word2 word5 word4 word1”和语言2的输出应通过输入相同的顺序,例如“ translation3 translation2 translation5 translation4 translation1”。但是在将字符串拆分为数组后,通过在我的sql查询中使用OR来使问题按数据库顺序显示。如果im不使用OR,则不会显示结果。所以我要解决的问题是:

  1. 根据用户输入的内容显示翻译结果
  2. 由用户使用确切的输入词来查找翻译
  3. 如果有重复输入的单词,例如word1 word1 word1 = translation1 translation1 translation1,则显示翻译结果。

如果您有任何解决方案,请提供帮助,因为我似乎无法在互联网上找到任何解决方案。谢谢。这是我的代码

<?php
if(isset($_POST['transl']))
{
$keyword = mysqli_real_escape_string($con, $_POST['input_text']);
$keys = explode(" ",$keyword);

$sql = "SELECT * FROM language WHERE language_1 = '".$keyword."' " ;


foreach($keys as $k){

    $sql .= " OR language_1 = '".$k."' ";


}
$result = mysqli_query($con, $sql);
if($result){

    while($row = mysqli_fetch_assoc($result)){

        echo $row['language_2'];
    }
}

echo $sql;
} 
?>

1 个答案:

答案 0 :(得分:0)

您可以像以前一样使用OR查询从SQL中加载单词并保存为关联数组-但是在翻译时,我建议您使用带有language_1language_2的2个数组然后使用str-replace交换单词。

请考虑以下内容:

$dic = array();
while($row = mysqli_fetch_assoc($result)){
    $dic[$row['language_1']] = $row['language_2']; 
}

现在,您可以获取键(language_1)和值(language_2)并用作:

$newSentence = str_replace(array_keys($dic), array_values($dic), $input);