在我的表格中,我有以下内容:
这是我想要做的。我有一个多语言网站,我的change language
按钮会通过支票查看是否存在与当前页面相关的页面,使用其他语言。
让我说每当我改变语言时我都会输入www.example.com/contact-us
,在这种情况下,我们可以说是挪威语。我想看看挪威是否有任何相关页面。在这种情况下,www.example.com/kontakt-oss
我尝试使用值language ID
这是我想要的语言(2)
,以及当前页面contact-us
。如何从这两个值中生成输出kontakt-oss
的选择查询?
我已经尝试了LEFT JOIN
和FULL OUTER JOIN
,但我似乎无法找到解决方案。
// CHECK IF PARALELL LANGUAGE PAGE
$sql2 = "SELECT page_name "
. "FROM pages "
. "WHERE page_relations IN (SELECT page_relations FROM pages WHERE page_name = :pagename) AND page_lang = :language";
$query2 = $db_connect->prepare($sql1);
if($query2->execute(array(':pagename' => $get_website_page,':language' => $echomenu['language_id']))){
echo "/test";
var_dump("GO!");
}
else{
var_dump("ERROR");
}
我检查了以下值get_website_page
输出:contact-us
$echomenu['language_id']
输出:2。
但是,查询简单不会运行并输出ERROR。
答案 0 :(得分:2)
SELECT *
FROM tbl
WHERE page_relations IN (SELECT page_relations FROM tbl WHERE page_name='contact-us')
AND page_lang=2
答案 1 :(得分:0)
如果当前页面的page_lang为1,则MySQL查询为
SELECT
p2.page_name
FROM
tableName p1
INNER JOIN
tableName p2 ON p1.page_relations = p2.page_relations
AND p1.page_lang <> p2.page_lang
AND p1.page_relations == 4 //current page_relations
AND p1.page_lang == 1; // current page_lang
如果当前页面的page_lang为2,则MySQL查询为
SELECT
p2.page_name
FROM
tableName p1
INNER JOIN
tableName p2 ON p1.page_relations = p2.page_relations
AND p1.page_lang <> p2.page_lang
AND p1.page_relations == 4
AND p1.page_lang == 2;
您可以将当前page_relation 值或当前 page_lang值作为函数的参数传递