想法是通过从mysql获取数据来创建简单的多语言网站。
那些是Mysql表
lang(language_id,language_name,language_slug)
navigation(navigation_id,navigation_title,navigation_parent)
content(content_id,content_title,content,content_parent,content_author)
这是我的代码:
<?php
include ('config.php');
$lang = isset($_GET['lang']) ? $_GET['lang'] : '';
$lang = mysqli_real_escape_string($conn,$lang);
$query = "SELECT * FROM lang";
$result = mysqli_query($conn,$query);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
?>
<a href=index.php?lang=<?php echo $row['language_slug']?> style="float: right"> <?php echo $row['language_slug']?>/ </a>
}
} else {
echo "0 results";
}
$lang = mysqli_real_escape_string($conn,$lang);
$query = "SELECT * FROM lang c1 LEFT JOIN navigation c2 ON c2.navigation_parent = c1.language_id LEFT JOIN content p ON p.content_parent = c2.navigation_id WHERE c1.language_slug = '{$lang}'";
$result = mysqli_query($conn,$query);
while($row = mysqli_fetch_array($result)) {
<li class="mnu"><a href=index.php?id=<?php echo $row['navigation_id'];?>>
<?php echo $row['navigation_title'];?><span></span><span></span><span></span><span></span></a></li>
<?php echo $row['content'];?>
<?php
}
我尝试了左联接,但结果不理想
所有数据(导航菜单和内容均循环显示)
首页
这是主页内容
首页
Lorem ipsum dolor坐下,奉献己任,sius do eiusmod tempor incididunt ut Labore et dolore magna aliqua。尽量不要抽烟,不要因抽烟而锻炼。 Duis aute irure dolor in reprehenderit in volttable velit esse cillum dolore eu fugiat nulla pariatur。不会出现意外的圣人,反而会在犯规的情况下动手动手。
联系方式
Ultrices gravida dictum fusce ut placerat。 Prebium quam副手dignissim在imperdiet dui accumsan坐的Elit。
这个想法是,当您调用GET参数 index.php?lang=en
来从mysqli
db获取数据时,仅显示主页一次不再次循环,也不循环其他页面内容,例如例如...
预先感谢:-)