示例#1
0
require_once APP_PATH . 'util/db.php';
require_once APP_PATH . 'util/Collect.class.php';
$collect_size = 100;
// 采集数量
$con = get_con();
$collect = new Collect();
// manual_collect表示手动再次采集该歌手的专辑,比如想要更新歌手的新专辑就可以设置该字段为1
// 如果想重新采集某歌手的专辑设置manual_collect为1并设置shield_collect为0
$result = mysql_query("select id from {DBPREFIX}artist where (manual_collect=1 or id not in (select distinct artist_id from {DBPREFIX}album)) and shield_collect=0 order by manual_collect desc limit {$collect_size}", $con);
$artistIdArr = array();
while (!!($row = mysql_fetch_array($result))) {
    $artistIdArr[] = $row['id'];
}
// print_r($artistIdArr);die;
if (!empty($artistIdArr)) {
    $albumArr = $collect->albumList($artistIdArr);
    // print_r($albumArr);die;
    if (!empty($albumArr)) {
        foreach ($artistIdArr as $artistId) {
            $data['artist_id'] = $artistId;
            //  有些歌手没有专辑只有歌曲,把没有专辑的歌手的shield_collect设为1,防止下次还采集它。如果想再采集该歌手设置manual_collect为1。
            if (!empty($albumArr[$artistId])) {
                // 该歌手有专辑
                foreach ($albumArr[$artistId] as $album) {
                    $data['album_id'] = $album['album_id'];
                    $result = mysql_query("select id from " . DBPREFIX . "album where album_id={$data['album_id']}", $con);
                    if (!($row = mysql_fetch_array($result))) {
                        // 数据库不存在该专辑 -> insert
                        $sql = "insert into\n                                            " . DBPREFIX . "album\n                                           (album_id,\n                                            artist_id)\n                                     values\n                                           ({$data['album_id']},\n                                            {$data['artist_id']})";
                    }
                    // echo $sql;die;