Загрузка mp3-файлов на сервер и создание динамического плейлиста из базы данных Mysql

Для моего школьного проекта мне нужно создать mp3-плеер на JavaScript, что я и сделал. Он отлично работает с предопределенным списком песен. Итак, на данный момент у меня есть файлы, хранящиеся в каталоге mp3, и таблица с информацией для каждой песни, и все это в простом html. Мои знания MySql и PHP находятся на начальном уровне, и я стараюсь улучшать их каждый день.

Но теперь мой учитель считает, что это слишком просто, и теперь мне нужно сделать следующее:

  • Создайте базу данных MySql с: идентификатором, исполнителем, песней, обложкой для каждой песни.
  • Напишите php-код, который будет вставлять всю эту информацию в эту базу данных, когда я загружаю новую песню.
  • Только зарегистрированный пользователь мог слушать все песни, поэтому мне нужно создать базу данных для пользователей и скрипт регистрации.

Все это для меня не проблема, а вот следующая часть уже проблема (пока что надеюсь на это :) )

  • Когда пользователь войдет в систему, он увидит список всех песен из базы данных с флажком рядом с именем, поэтому он может выбрать песни, которые он хочет воспроизвести. По сути, он проверит те песни, которые хочет прослушать, и нажмет кнопку «Отправить». После этого скрипт должен отправить эти данные и создать таблицу с теми песнями, которые он проверил.

Я пытался найти ответ или какой-то пример, но безуспешно. Нет никаких ограничений и важного в вопросах безопасности, так что не беспокойтесь об этом. Просто любой работающий код был бы хорош или направление, как к нему. Спасибо :)

РЕДАКТИРОВАТЬ: теперь таблица выглядит так:

<ul id="playlist" class="hidden">
            <li song="Guns and Roses - Sweet child of mine.mp3" cover="guns.jpeg" ">Guns and Roses - Sweet child of mine.</li>
            <li song="Guns and Roses - Welcome to the Jungle.mp3" cover="guns.jpeg" ">Guns and Roses - Welcome to the Jungle</li>
            <li song="Michael Jackson - I Just Cant Stop Loving You.mp3" cover="mj.jpg" ">Michael Jackson - I Just Cant Stop Loving You</li>
            <li song="Michael Jackson - Thriller.mp3" cover="mj.jpg" ">Michael Jackson - Thriller</li>
            <li song="Joe Cocker - Up Where We Belong.mp3" cover="joe.jpg" ">Joe Cocker - Up Where We Belong</li>   
        </ul>

Мне нужно сделать его динамическим, заполнить данными из базы данных и иметь возможность воспроизводить его.


person Madagaskar    schedule 27.03.2015    source источник
comment
Почему вы хотите сохранить песни, которые пользователь хочет услышать, в новую таблицу? Для чего вам нужна эта информация?   -  person ismaestro    schedule 28.03.2015
comment
Может быть, не новую таблицу, а просто заполнить существующую таблицу в html (возможно, с помощью функции while). Теперь у меня есть статическая таблица с 5 песнями, которые может играть плеер. Я хочу построить динамическую таблицу. Если пользователь хочет воспроизвести 3 или 4 песни из 5, он может просто установить флажки рядом с этими песнями, и он создаст новую (вот что я имею в виду под новой) таблицу с таким количеством песен, которое он хочет.   -  person Madagaskar    schedule 28.03.2015
comment
Если вы хотите запомнить, какие песни хочет играть пользователь, вам нужно создать новую таблицу (и затем вам нужно будет изменить этот список с соответствующими запросами для обновления таблицы). Но я думаю, что проще всего просто спросить, какие песни он хочет (заполнить простой массив), а затем передать это плееру...   -  person ismaestro    schedule 28.03.2015
comment
Мне не нужно запоминать это, просто чтобы отправить эти выбранные песни в плеер. Это можно было делать каждый раз, когда он входил в систему. Это нужно сделать один раз. Если вы можете предоставить мой скрипт или пример, я был бы вам очень благодарен...   -  person Madagaskar    schedule 28.03.2015
comment
как теперь плеер принимает песни?   -  person ismaestro    schedule 28.03.2015
comment
Это код java-скрипта: initAudio($('#playlist li:first-child')); function initAudio(element){ var song = element.attr('song'); var title = element.text(); var обложка = element.attr('обложка'); var artist = element.attr('художник'); //Создаем новый аудиообъект audio = new Audio('media/' + song); if(!audio.currentTime){ $('#duration').html('0.00'); } $('#audio-player .title').text(title); $('#audio-player .artist').text(artist);   -  person Madagaskar    schedule 28.03.2015
comment
Вы хотите получить из базы данных информацию о выбранных песнях; а затем, перебирая этот набор результатов, динамически создавать желаемый HTML. Что не ясно, так это то, с какой именно частью этого вы застряли: получение информации о песне из базы данных; фильтрация наборов данных; использование выбранных песен в качестве фильтра данных; повторение набора результатов; или создавать HTML динамически?   -  person eggyal    schedule 28.03.2015
comment
Единственное, что я знаю сейчас, это как получить информацию о песнях из базы данных. Я не знаю, как выбрать песни, которые пользователь хочет воспроизвести, и как использовать эти данные для динамического создания HTML.   -  person Madagaskar    schedule 28.03.2015


Ответы (1)


Вот как я это сделал.

Во-первых, я использовал список вместо таблицы. Затем я сделал таблицу с названием песни (имя.mp3), которое автоматически загружается в базу данных при загрузке песни. Песня и кавер

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM songs";

$result = $conn->query($sql);


if ($result->num_rows > 0) {
     // output data of each row
     while($row = $result->fetch_assoc()) {
         echo  '<li song="', $row["name"], '" cover="', $row["cover"], '">', $row['name'] , '</li>';


} 
} else {
     echo "0 results";
}

$conn->close();
?>  

Часть с выбором песен пользователем пока мне неизвестна, но это нормально и работает нормально.

person Madagaskar    schedule 29.03.2015