导出/导入表功能

时间:2012-01-19 01:28:08

标签: php mysql sql joomla

我正在使用Joomla 1.7并且我遇到了一些问题,并且想知道是否有人可以提供帮助。我的网站上安装了一个组件,用户可以使用该组件创建播放列表。它们存储在一个表中,该表包含名称,用户ID,播放列表ID,播放列表名称和歌曲的字段。每首歌都有一个唯一的ID,播放列表保存在如下字段中:7,2,4,68,70。

id喜欢做的是创建导入/导出功能。我认为导出最简单的方法是将用户播放列表表导出为sql文件。然后,为了导入sql文件,将读取其字段,并且仅使用歌曲字段和名称字段创建新的播放列表表。用户ID字段将填入当前用户,并根据现有播放列表ID检查播放列表ID字段,并分配新的播放列表ID。

现在我知道当前的播放列表创建由components / com_muscol / models.php中的组件管理

我开始尝试创建该函数,但我对如何将数据导出为sql文件感到有点迷失:

function get_mysql(){
    $db =& JFactory::getDBO();

    $query = 'SELECT pl.*, us.name AS username FROM #__muscol_playlists AS pl         LEFT JOIN #__users AS us ON us.id = pl.user_id WHERE pl.id = ' . $this->_id ;
    $this->_db->setQuery( $query ); 
    }

感谢您的帮助......

1 个答案:

答案 0 :(得分:1)

要将数据导出为SQL,只需循环访问它。这样的事情应该有效:

$sql = array();
$query = mysql_query("YOUR QUERY HERE");

while($result = mysql_fetch_assoc($query){
    $cols = array('user_id'); // put ID's etc. into $cols and $vals
    $vals = array($user_id);
    foreach($result as $col => $val){
        $cols[] = $col;
        $vals[] = $val;
    }
    $sql[] = "INSERT INTO `#__muscol_playlists` (`".implode('`,`', $vals)."`) VALUES('".implode('`,`', $cols)."')";
}

echo explode("\n", $sql);

(注意:这是作为一个例子在现场写的,并没有经过测试,所以如果你只是复制它就不要指望它神奇地工作)