diff options
Diffstat (limited to 'music.php')
-rw-r--r-- | music.php | 136 |
1 files changed, 123 insertions, 13 deletions
@@ -13,7 +13,7 @@ class Tag class Album { public $uid; - public $name; + public $title; public $cover; public $description; public $array_music_ids; // 包含的音乐id(考虑到效率,这里不存为music结构) @@ -71,18 +71,6 @@ function fetch_all_tags() { return $arr; } -function fetch_album_by_id($uid) -{ - $result = execute_sql("SELECT * FROM " . Config::$tb_album . " where id=" . $uid); - while($row = mysqli_fetch_assoc($result)){ - $album = new Album; - $album->uid = $uid; - $album->name = $row['name']; - return $album; - } - return null; -} - function fetch_album_by_name($name) { $result = execute_sql("SELECT * FROM " . Config::$tb_album . " where name='" . $name . "'"); @@ -126,6 +114,19 @@ function add_unique_album($name) { return $arr[0]; } +function fetch_albums_music_ids($album_id) { + $sql = "SELECT music_id FROM " . Config::$tb_album_music . ' WHERE album_id=' . $album_id; + $result = execute_sql($sql); + if($result == NULL || $result->num_rows == 0) + return null; + $arr = array(); + while($row = mysqli_fetch_assoc($result)){ + $mid = $row['music_id']; + array_push($arr, $mid); + } + return $arr; +} + // 获得某个音乐的tags function fetch_music_tags($uid) { $sql = "SELECT * FROM " . Config::$tb_music_tag . ' WHERE music_id=' . $uid; @@ -177,6 +178,24 @@ function fetch_music_by_id($uid) { } } +function fetch_album_by_id($uid) { + $sql = "SELECT * FROM " . Config::$tb_album . " WHERE id=" . $uid; + $result = execute_sql($sql); + if($result == NULL || $result->num_rows == 0) + { + return null; + } + while($row = mysqli_fetch_assoc($result)){ + $album = new Album(); + $album->uid = $row['id']; + $album->cover = $row['cover']; + $album->title = $row['title']; + $album->description = $row['description']; + $album->array_music_ids = fetch_albums_music_ids($album->uid); + return $album; + } +} + // 从第from个记录开始的count个 function fetch_range_music($from=0, $count=100) { $sql = "SELECT id FROM " . Config::$tb_music . " ORDER BY time DESC LIMIT " . $from . ", " . $count ; @@ -195,6 +214,24 @@ function fetch_range_music($from=0, $count=100) { return $arr; } +// 从第from个记录开始的count个 +function fetch_range_album($from=0, $count=100) { + $sql = "SELECT id FROM " . Config::$tb_album . " ORDER BY id DESC LIMIT " . $from . ", " . $count ; + $result = execute_sql($sql); + if($result == NULL || $result->num_rows == 0) + { + return null; + } + $arr = array(); + while($row = mysqli_fetch_assoc($result)){ + $id = $row['id']; + $album = fetch_album_by_id($id); + array_push($arr, $album); + } + + return $arr; +} + //搜索 function fetch_musics_by_name($name, $from=0, $count=100) { @@ -275,6 +312,18 @@ function get_all_music_count() { return 0; } +function get_all_album_count() { + $sql = "SELECT COUNT(*) as count FROM " . Config::$tb_album; + $result = execute_sql($sql); + if($result == null || $result->num_rows == 0) + return 0; + $row = mysqli_fetch_assoc($result); + if($row != null){ + return $row['count']; + } + return 0; +} + function add_unique_music_tag( $music_id, $tag_id ) { $result = execute_sql("SELECT * FROM " . Config::$tb_music_tag . " where music_id=" . $music_id . " and tag_id=" . $tag_id ); @@ -354,6 +403,18 @@ function get_music_albums_id_string($music) { return $album_str; } +// 返回编辑中的music_id字符串 +function get_albums_music_id_string($album) { + if($album->array_music_ids == null || count($album->array_music_ids) == 0){ + return ""; + } + $music_str = $album->array_music_ids[0]; + for($i = 1; $i < count($album->array_music_ids); $i++) { + $music_str = $music_str . ',' . $album->array_music_ids[$i]; + } + return $music_str; +} + function delete_music_tag($music) { $sql = "DELETE FROM " . Config::$tb_music_tag . " WHERE music_id=" . $music->uid; execute_sql($sql); @@ -528,4 +589,53 @@ function get_album_from_post() { return $album; } + +// 将album写入数据库(插入或更新) +function write_album_to_db($album) { + if ($album == null ) + return ; + + if($album->uid == -1){// 插入新的 + + $sql = "INSERT INTO " . Config::$tb_album . " (title, description, cover) values (" . + "'". $album->title . "',". + "'". $album->description . "',". + "'". $album->cover . "'". + ")" ; + //println($sql); + execute_sql($sql); + + $id = get_last_insert_id(); + + foreach($album->array_music_ids as $mid){ + add_unique_music_album($mid, $id); + } + } + else // 更新 + { + // $sql = "UPDATE " . Config::$tb_music . " SET " . + // "path='" . $music->path ."'," . + // "title='" . $music->title ."'," . + // "cover='" . $music->cover ."'," . + // "project='" . $music->project ."'" . + // " WHERE id=" . $music->uid; + // //println($sql); + // execute_sql($sql); + + // delete_music_tag($music); + // delete_music_album($music); + + // $id = $music->uid; + + // foreach($music->array_tags as $tag){ + // add_unique_music_tag($id, $tag->uid); + // } + + // foreach($music->array_albums as $album){ + // add_unique_music_album($id, $album->uid); + // } + } +} + + ?>
\ No newline at end of file |