Функция экспорта / импорта таблицы - PullRequest
0 голосов
/ 19 января 2012

Я использую Joomla 1.7, и у меня возникла небольшая проблема, и мне было интересно, может ли кто-нибудь помочь.На моем сайте установлен компонент, который пользователи могут использовать для создания списков воспроизведения.Они хранятся в таблице, содержащей поля для имени, идентификатора пользователя, идентификатора списка воспроизведения, имени списка воспроизведения и песен.Каждая из песен имеет уникальный идентификатор, а список воспроизведения хранится в поле, например, так: 7,2,4,68,70.

То, что я хотел бы сделать, - это создать функцию импорта / экспорта.Я подумал, что проще всего было бы экспортировать таблицу плейлистов пользователей в виде файла sql.Тогда для импорта файла sql будут прочитаны его поля, и будет создана новая таблица списка воспроизведения, используя только поле песни и поле имени.Поле идентификатора пользователя будет заполнено текущим пользователем, а поле идентификатора списка воспроизведения будет проверено на соответствие существующим идентификаторам списка воспроизведения и назначенному новому.

Сейчас я знаю, что текущим созданием списка воспроизведения управляет компонент в компонентах/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 Ответ

1 голос
/ 19 января 2012

Чтобы экспортировать данные в виде 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);

(примечание: это было написано на месте в качестве примера и вообще не тестировалось, поэтому не ожидайте, что оно будет работать магическим образом, если вы просто скопируете его)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...