当前位置:首页 > PHP

php实现音乐搜索功能

2026-04-03 10:18:11PHP

数据库设计与歌曲表创建

在MySQL中创建歌曲表,存储音乐相关信息

CREATE TABLE songs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    artist VARCHAR(255) NOT NULL,
    album VARCHAR(255),
    duration INT,
    file_path VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

搜索表单界面构建

创建HTML搜索表单,允许用户输入关键词

<form action="search.php" method="get">
    <input type="text" name="query" placeholder="搜索歌曲或歌手">
    <button type="submit">搜索</button>
</form>

基本搜索功能实现

使用PHP处理搜索请求并查询数据库

$query = $_GET['query'] ?? '';
if (!empty($query)) {
    $db = new PDO('mysql:host=localhost;dbname=music_db', 'username', 'password');
    $stmt = $db->prepare("SELECT * FROM songs WHERE title LIKE :query OR artist LIKE :query");
    $stmt->execute([':query' => "%$query%"]);
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

搜索结果展示页面

循环显示搜索结果并提供播放链接

foreach ($results as $song) {
    echo "<div class='song-result'>";
    echo "<h3>{$song['title']}</h3>";
    echo "<p>艺术家: {$song['artist']}</p>";
    echo "<audio controls><source src='{$song['file_path']}' type='audio/mpeg'></audio>";
    echo "</div>";
}

高级搜索功能扩展

实现多条件组合搜索

$title = $_GET['title'] ?? '';
$artist = $_GET['artist'] ?? '';
$album = $_GET['album'] ?? '';

$conditions = [];
$params = [];

if (!empty($title)) {
    $conditions[] = "title LIKE :title";
    $params[':title'] = "%$title%";
}

if (!empty($artist)) {
    $conditions[] = "artist LIKE :artist";
    $params[':artist'] = "%$artist%";
}

$sql = "SELECT * FROM songs";
if (!empty($conditions)) {
    $sql .= " WHERE " . implode(" AND ", $conditions);
}

搜索性能优化

为常用搜索字段添加索引

ALTER TABLE songs ADD INDEX idx_title (title);
ALTER TABLE songs ADD INDEX idx_artist (artist);
ALTER TABLE songs ADD INDEX idx_album (album);

模糊搜索改进

使用全文索引实现更灵活的搜索

ALTER TABLE songs ADD FULLTEXT(title, artist, album);
$stmt = $db->prepare("SELECT * FROM songs WHERE MATCH(title, artist, album) AGAINST(:query IN BOOLEAN MODE)");
$stmt->execute([':query' => $query]);

搜索结果分页处理

实现搜索结果分页显示

php实现音乐搜索功能

$page = $_GET['page'] ?? 1;
$limit = 10;
$offset = ($page - 1) * $limit;

$stmt = $db->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM songs WHERE title LIKE :query LIMIT :limit OFFSET :offset");
$stmt->bindValue(':query', "%$query%");
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();

$total = $db->query("SELECT FOUND_ROWS()")->fetchColumn();
$totalPages = ceil($total / $limit);

分享给朋友:

相关文章

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

vue实现商品搜索功能

vue实现商品搜索功能

Vue 实现商品搜索功能 数据准备与绑定 在 Vue 组件中定义商品数据列表和搜索关键词。商品数据可以存储在 data 属性中,搜索关键词通过 v-model 双向绑定到输入框。 <templ…

vue实现分页搜索功能

vue实现分页搜索功能

实现分页搜索功能 在Vue中实现分页搜索功能通常需要结合前端分页逻辑和后端API(或模拟数据)。以下是一个完整的实现方案: 基础数据准备 创建Vue组件时定义必要的数据属性: data() {…

uniapp 后台音乐

uniapp 后台音乐

如何在 UniApp 中实现后台音乐播放 配置 manifest.json 文件 在项目的 manifest.json 文件中,确保已启用后台运行权限。找到 app-plus 节点,添加以下配置:…

uniapp安卓音乐

uniapp安卓音乐

开发环境准备 确保已安装HBuilderX,并配置好Android开发环境(JDK、Android Studio等)。创建UniApp项目时选择默认模板或音乐类模板。 音频播放功能实现 使用uni.…

vue搜索功能实现

vue搜索功能实现

Vue 搜索功能实现 基本搜索功能实现 在 Vue 中实现搜索功能通常需要结合 v-model 和计算属性(computed)或方法(methods)来过滤数据。以下是一个简单的示例: <te…