summaryrefslogtreecommitdiff
path: root/music.php
diff options
context:
space:
mode:
Diffstat (limited to 'music.php')
-rw-r--r--music.php136
1 files changed, 123 insertions, 13 deletions
diff --git a/music.php b/music.php
index 6903fc3..4405401 100644
--- a/music.php
+++ b/music.php
@@ -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