gpt4 book ai didi

php - 如果语言更改,请更改另一个表来读取

转载 作者:行者123 更新时间:2023-11-29 20:27:24 25 4
gpt4 key购买 nike

我使用了 common.php 来选择整个网站的语言,并且网页的各个单词/短语的翻译从语言文件中读取每种语言变量,例如 lang/lang.de.php , lang.en.php 等和输出。这也非常有效并且不是问题。现在我已经在网站上设计了一个博客,其帖子位于数据库中,我现在想根据访问者语言的选择,从整个表中说话、阅读和花费。

简而言之:
访问者选择德语,所有内容都从下表中读取,并输出...

 <?php
$sql = "SELECT Blogtitel, Blogdate, Blogpost FROM blog_de ORDER BY ID ASC LIMIT 3
?>

...或者如果访问者选择,例如英语,则根据下表阅读...

 <?php
$sql = "SELECT Blogtitel, Blogdate, Blogpost FROM blog_en ORDER BY ID ASC LIMIT 3
?>

...等等

common.php

 <?php
session_start();
header('Cache-control: private');
if(isSet($_GET['lang'])) {
$lang = $_GET['lang'];
$_SESSION['lang'] = $lang;
setcookie('lang', $lang, time() + (3600 * 24 * 30));
} else if(isSet($_SESSION['lang'])) {
$lang = $_SESSION['lang'];
} else if(isSet($_COOKIE['lang'])) {
$lang = $_COOKIE['lang'];
} else { $lang = 'de'; }
switch ($lang) {
case 'en': $lang_file = 'lang.en.php'; break;
case 'de': $lang_file = 'lang.de.php'; break;
case 'ru': $lang_file = 'lang.ru.php'; break;
case 'fr': $lang_file = 'lang.fr.php'; break;
default: $lang_file = 'lang.de.php'; }
include_once 'lang/'.$lang_file;
?>

博客.php

<section id="blog" class="row">
<div class="center">
<h1 style="color:#fff; text-shadow: 1px 1px 2px #000000;"><i class="fa fa-newspaper-o" aria-hidden="true"></i> Blog</h1>
<div id="blogcontent">
<?php
$pdo = new PDO('mysql:host=localhost;dbname=DATENBANK', 'BENUTZER', 'PASSWORT');
if ($_GET["lang"]=="de") { $sql = "SELECT Blogtitel, Blogdate, Blogpost FROM blog_de ORDER BY ID ASC LIMIT 3"; }
else if ($_GET["lang"]=="en") { $abfrage = "SELECT Blogtitel, Blogdate, Blogpost FROM blog_en ORDER BY ID ASC LIMIT 3"; }
else if ($_GET["lang"]=="fr") { $abfrage = "SELECT Blogtitel, Blogdate, Blogpost FROM blog_fr ORDER BY ID ASC LIMIT 3"; }
else if ($_GET["lang"]=="ru") { $abfrage = "SELECT Blogtitel, Blogdate, Blogpost FROM blog_ru ORDER BY ID ASC LIMIT 3"; }
else { $abfrage = "SELECT Blogtitel, Blogdate, Blogpost FROM blog_ru LIMIT 3 ORDER BY Name ID LIMIT 3"; }
foreach ($pdo->query($sql) as $row) {
echo "<div class='post'><div class='blog_titel'><i class='fa fa-comment-o' aria-hidden='true'></i> " .$row['Name']. "</div>";
echo "<div class='blog_date'><i class='fa fa-calendar' aria-hidden='true'></i> " .$row['Phone']. "</div>";
echo "<div class='blog_post'> " .$row['Email']. "</div>";
echo "</div>";
}
?>
</div>
</div>
</div>
</section>

语音输出效果非常好,并且它也会在 lang/lang.de.php 、 lang/lang.en.php 等变量上的现有语言的所有方面正确读出并发出。当我现在但例如:

 index.php?lang=en  

导航中的英语语言调用,然后不要从相应的表中按照需要阅读博客文章。在我看来它应该可以工作,但是使用上面的代码或者那里有错字或者我在那里弄错了?因此,我向你们中更有经验的人提出的问题是,我该如何做到这一点,具体取决于从现有数据库中选择适当的表并以阅读的语言显示。

最佳答案

如果 $_GET['lang']=='de' 将查询放入 $sql 中,这是正确的,因为这样你就执行 $pdo->query($sql) 。在其他情况下,您将其放入 $abfrage 中,因此错误就在那里。

无论如何,一种更简单的方法,保持相同的数据库结构,应该是:

foreach($pdo->query("SELECT ... FROM blog_".$_GET['lang']." WHERE ...") as row) ...

无论如何,ppeterka 解决方案可能是最好的。

关于php - 如果语言更改,请更改另一个表来读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39225405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com