Nieuw lid |
|
Hoi allemaal,
Voor mijn muziek website ben ik bezig met een php script in combinatie met het html5 audio element om een dynamische playlist te maken.
Hier de code voor de html5 audio speler:
<audio src="http://www.radiostereo.nl/paginas/muziek/afspeellijsten/html5.php" controls="controls" autoplay="autoplay" loop="loop">
</audio>
<audio src="http://www.radiostereo.nl/paginas/muziek/afspeellijsten/html5.php" controls="controls" autoplay="autoplay" loop="loop"> </audio>
En hier de code voor de dynamische playlist
<?
// Verbinding maken met de database
mysql_connect("***","***","***");
mysql_select_db("***");
// Kijken of er een nummer in de playlist_tabel staat
$sql = "SELECT muziek_id FROM playlist ORDER BY id ASC";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$muziek_id = htmlspecialchars($rij->muziek_id);
// Zo ja, dan informatie uit de muziek_tabel halen
$sql = "SELECT * FROM `muziek` WHERE id='$muziek_id'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$id = htmlspecialchars($rij->id);
$artiest = htmlspecialchars($rij->artiest);
$titel = htmlspecialchars($rij->titel);
$link = htmlspecialchars($rij->link);
$album = htmlspecialchars($rij->album);
// Nummer uit de playlist_tabel verwijderen
$sql = "DELETE FROM playlist WHERE muziek_id=$muziek_id";
$query = mysql_query($sql);
// Aantal keer afgespeeld van het gekozen nummer verhogen met 1
mysql_query("UPDATE muziek SET afgespeeld=afgespeeld + 1 WHERE id= '$id' ");
// Wanneer er geen nummers in de playlist_tabel staan een random nummer kiezen
if(!$link){
// Aantal nummers tellen
$sql = "SELECT id FROM `muziek` ORDER BY id DESC ";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$tot = htmlspecialchars($rij->id);
// Random nummer bepalen
$random = rand(1, $tot);
// Informatie uit de muziek_tabel halen
$sql = "SELECT * FROM `muziek` WHERE id='$random'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$id = htmlspecialchars($rij->id);
$artiest = htmlspecialchars($rij->artiest);
$titel = htmlspecialchars($rij->titel);
$link = htmlspecialchars($rij->link);
$album = htmlspecialchars($rij->album);
}
// Speciale characters in de link omzetten
$link = str_replace("&", "&", $link);
$link = str_replace(" ", "%20", $link);
$link = str_replace("é", "%c3%a9", $link);
//Header
header('Content-type: audio/mpeg');
header('Content-Length: '.filesize($link));
header("Expires: -1");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
readfile($link);
?>
<? // Verbinding maken met de database // Kijken of er een nummer in de playlist_tabel staat $sql = "SELECT muziek_id FROM playlist ORDER BY id ASC"; // Zo ja, dan informatie uit de muziek_tabel halen $sql = "SELECT * FROM `muziek` WHERE id='$muziek_id'"; // Nummer uit de playlist_tabel verwijderen $sql = "DELETE FROM playlist WHERE muziek_id=$muziek_id"; // Aantal keer afgespeeld van het gekozen nummer verhogen met 1 mysql_query("UPDATE muziek SET afgespeeld=afgespeeld + 1 WHERE id= '$id' "); // Wanneer er geen nummers in de playlist_tabel staan een random nummer kiezen if(!$link){ // Aantal nummers tellen $sql = "SELECT id FROM `muziek` ORDER BY id DESC "; // Random nummer bepalen // Informatie uit de muziek_tabel halen $sql = "SELECT * FROM `muziek` WHERE id='$random'"; } // Speciale characters in de link omzetten //Header header('Content-type: audio/mpeg'); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); ?>
Nu werkt het script redelijk goed.
Behalve wanneer ik een nummer aan de playlist toevoeg.
In plaats van dat het nummer in de playlist wordt afgespeeld wordt er toch een random nummer afgespeeld.
Nu lijkt het dus dat het eerste gedeelte van het script niet werkt
(waar het nummer uit de playlist wordt gekozen)
maar wanneer ik de onderstaande regels verwijder:
// Nummer uit de playlist_tabel verwijderen
$sql = "DELETE FROM playlist WHERE muziek_id=$muziek_id";
$query = mysql_query($sql);
wordt het nummer uit de playlist WEL afgespeeld.
Maar dan heb ik dus het probleem dat het nummer oneindig gekozen blijft worden, omdat het nummer niet wordt verwijdert uit de playlist.
Iemand enig idee hoe dit kan?
Bedankt alvast!
Stefan
Edit: Je kunt het script proberen door naar deze pagina te gaan met bijvoorbeeld google chrome http://www.radiostereo.nl?frame
En dan nummers toe te voegen aan de playlist
|