当前位置:首页 > 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处理搜索请求并查询数据库

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>";
}

高级搜索功能扩展

实现多条件组合搜索

php实现音乐搜索功能

$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]);

搜索结果分页处理

实现搜索结果分页显示

$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);

分享给朋友:

相关文章

vue实现模糊搜索功能

vue实现模糊搜索功能

实现模糊搜索的基本思路 在Vue中实现模糊搜索功能通常需要结合输入框的事件监听、数据过滤以及实时展示。核心是利用JavaScript的字符串方法或正则表达式对数据进行匹配筛选。 使用计算属性实现模糊…

Django加Vue实现音乐

Django加Vue实现音乐

Django 后端搭建 安装 Django 和相关依赖: pip install django djangorestframework django-cors-headers 创建 Django 项…

react搜索功能实现

react搜索功能实现

实现React搜索功能的方法 使用状态管理存储搜索词 在React组件中,使用useState钩子来存储和管理搜索词。创建一个输入框,通过onChange事件更新搜索词的状态。 const [sea…

php实现音乐搜索功能

php实现音乐搜索功能

数据库设计 音乐搜索功能需要存储歌曲的基本信息,例如歌曲名称、歌手、专辑、时长等。创建一个MySQL数据库表来存储这些信息。 CREATE TABLE songs ( id INT AUTO…

css制作音乐

css制作音乐

使用CSS制作音乐播放器 CSS可以结合HTML和JavaScript创建音乐播放器界面,以下是实现方法: HTML结构 <div class="music-player">…

php搜索功能的实现

php搜索功能的实现

数据库查询实现搜索 在PHP中实现搜索功能,最基本的方式是通过SQL的LIKE语句查询数据库。创建一个搜索表单,用户输入关键词后,使用预处理语句防止SQL注入。 $searchTerm = $_GE…