我将尽力解释这一点。我正在创建翻译功能,它基于具有代码值的每个文本。例如:某个页面的标题具有代码和与该代码关联的值。
我有2个表:转换:保留所有代码和值,还有一个表,其中仅包含代码本身,并且通过一个将其转换为转换表的函数:
public function T($code) {
$value = $code;
$db_value = $this->db->getRow("SELECT value FROM translations WHERE code = '".$code."'");
if($db_value) {
$value = $db_value['value'];
}
return $value;
}
GetRow是一个自定义函数,可从表中选择单个列:
function getRow() {
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args == 0) {
return null;
} else if ($func_num_args == 1) {
$this->query($func_get_args[0]);
} else {
$args = array();
$query = $func_get_args[0];
unset($func_get_args[0]);
foreach ($func_get_args as $arg) {
if (is_string($arg) && !is_numeric($arg)) {
$args[] = mysqli_real_escape_string($this->conn, $arg);
} else {
$args[] = $arg;
}
}
$this->query(vsprintf($query, $args));
}
return ($this->rows() ? $this->fetch() : null);
}
现在让我遇到问题的网站进入管理页面,我希望隐藏文本代码并显示该代码表示的文本。我当前的当选者看上去有点像:但这不起作用,它仅选择列,但找不到任何行:
SELECT vc.*,
t.code,
t.value
FROM vakances_card AS vc
JOIN translations AS t
ON vc.title = t.code
AND vc.descr = t.code
答案 0 :(得分:0)
我不确定您要实现什么目标。您可以将查询更改为
选择vc。*, t.code, t值 从vakances_card AS vc 加入翻译AS t 开启vc.title = t.code AND vc.descr = t.code
到以下查询
选择vc。*, t.code, t值 从vakances_card AS vc 左联接翻译AS t 开启vc.title = t.code AND vc.descr = t.code
或者可以更改为
选择vc。*, t.code, t值 从vakances_card AS vc RIGHT JOIN翻译成t 开启vc.title = t.code AND vc.descr = t.code
希望您会得到所有想要的行。