我正在使用兩個表來支持multilangage。第一個表格包含項目字段。例如日期,投票等。語言字段的第二個表格。
CREATE TABLE `item` (
`item_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`nested_category_id` int(11) DEFAULT NULL,
`image_file` varchar(100) NOT NULL,
`date` varchar(0) DEFAULT NULL,
PRIMARY KEY (`item_id`)
);
CREATE TABLE `item_lang` (
`item_lang_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`lang_id` varchar(2) NOT NULL,
`item_id` int(11) unsigned NOT NULL,
`url_name` varchar(255) NOT NULL DEFAULT '',
`meta_title` varchar(255) DEFAULT NULL,
`meta_description` text,
`meta_keywords` varchar(255) DEFAULT NULL,
`name` varchar(255) NOT NULL,
`title` varchar(255) DEFAULT NULL,
`description` text,
PRIMARY KEY (`item_lang_id`)
);
如果你需要連續試試這樣的話。
function get_row($id, $lg='tr'){
$arr = array($id, $lg);
$sql = " SELECT ".$this->_table.".*, ".$this->_table_lang.".*
FROM ".$this->_table."
LEFT JOIN ".$this->_table_lang."
ON ".$this->_table.".".$this->_table."_id = ".$this->_table_lang.".".$this->_table."_id
WHERE ".$this->_table.".".$this->_table."_id = ?
AND ".$this->_table_lang.".lang_id=?";
$data = $this->db->query($sql, $arr);
return ($data->row());
}
這是我指出的更優化的解決方案嗎?實際上,我在網站上保留了多少行,因爲我在網站上有語言? – MarkC 2013-03-10 21:11:21
我認爲你必須在表格列中使用變量值。不在表名中。它對未來不是一個好策略。 – 2015-02-23 10:44:23