我有一张带有瑞典语鱼名的表格,看起来像这样:
鱼ID |瑞典语名称 |栖息地
我有每条鱼的所有瑞典名字,但我也想要英文名字,我希望它看起来像这样:
鱼ID |瑞典语名称 |英文名称 |栖息地
有什么方法可以将每条鱼的瑞典语名称翻译成英语并将其插入到“EnglishName”列中吗?
最佳答案
Is there any way to translate the swedish name of every fish to english and insert it in the 'EnglishName' column?
除非您使用 API,否则您需要将英文版本插入数据库,如果您有一个列表或数组准备插入,那么这将是很简单的,但如果您没有,您可能必须执行类似的操作,在其中选择所有行,然后创建一个基本表单,您可以在其中列出并放置英语等效项。
<?php
//connect
try {
$db = new PDO('mysql:host=127.0.0.1;dbname=fish_db', 'username', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->exec("SET CHARACTER SET utf8");
} catch(PDOException $e) {
echo 'Sorry there is a problem with the database connection :' . $e->getMessage();
}
//update if POST'ed form
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_POST['EnglishName'] as $key => $value){
$stmt = $db->prepare('UPDATE fish_table
SET EnglishName = :EnglishName
WHERE FishID=:FishID');
$stmt->bindValue(':EnglishName', $value);
$stmt->bindValue(':FishID', $key);
$stmt->execute();
}
}
//select rows
try{
$stmt = $db->prepare('SELECT * FROM fish_table WHERE EnglishName = ""');
$stmt->execute();
$fishs = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
?>
<form method="post" action="">
<table>
<?php foreach($fishs as $fish):?>
<tr>
<td width="50%"><input type="text" name="swedish[<?php echo $fish['FishID']?>]" value="<?php echo $fish['SwedishName']?>"></td>
<td width="50%"><input type="text" name="english[<?php echo $fish['FishID']?>]" value=""></td>
</tr>
<?php endforeach;?>
</table>
<input type="submit" name="Submit" value="Submit" >
</form>
或者使用 phpmyadmin ;p
关于php - 将数据库列中的所有值从一种语言翻译为另一种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23200701/