vampirella_147
Grünschnabel
Hallo an alle,
ich bastel gerade an einem Playlist mit Suchfunktion
Jedoch tut sich in der Datenbank garnichts,nicht mal
ein leerer eintrag wird erzeugt.
Das Gesamtprojekt besteht aus 2 Teilprojekten. Im ersten Schritt wird die vom DRS 2006-System exportierte HTML-Playlist in ein geeignetes Format überführt und in der MySQL-Datenbank gespeichert, damit die Suchfunktion darauf zugreifen kann. Der zweite Schritt ist der eigentliche Such-Algorithmus mit dem entsprechenden Frontend und die Anzeige
der aktuellen Playlist.
Hier der PHP-Code:
<html>
<head>
<meta http-equiv="refresh" content="30">
<title>get tracks</title>
</head>
<body>
<?php
/**
* Die Datei get_tracks.php überführt die Trackdaten von der HTML-Playlist
* in die MySQL-Datenbank.
*
*/
// Datei mit den MySQL-Zugangsdaten einbinden
include_once('db_config.php');
// Klasse die den Datenbankzugriff regelt einbinden
include_once('db_class.php');
// HTML-Playlist-Datei einlesen (implode() verbindet Array-Elemente zu einem String)
if($playlist_html_file = implode ('', file ('playlist.html'))) {
}else{
// falls keine Playlist gefunden wurde
echo"Keine HTML-Playlist zum einlesen gefunden<br />\n";
}
// Zeitpunkt des neuesten Tracks ermitteln für Überprüfung auf bereits gespeicherte Tracks
$select = $db->query ("SELECT max(created) as maxtrack FROM playlist");
$row = mysql_fetch_object($select);
$max = $row->maxtrack;
// Aktuelle Uhrzeit
$now = date ('H:i:s');
/*
Beginn der Extraktion der relevanten Daten aus der HTML-Datei. Hierzu wird die Funktion
preg_match_all() verwendet, welche global nach einem Suchmuster sucht. Die relevanten Informationen, die später in die Datenbank geschrieben werden, befinden sich innerhalb der <font>-Tags.
*/
if (preg_match_all ('/<tr[^>]*>(.*?)<\/tr>/mis', $playlist_html_file, $match) && is_array($match) && is_array($match[1])) {
foreach ($match[1] as $block) {
if (preg_match_all ('/<td[^>]*><font[^>]*>(.*?)<\/font><\/td>/i', $block, $submatch) &&
is_array ($submatch) && count($submatch[1]) == 3
&& substr($submatch[1][0], 0, 3) != '<b>'
//&& !in_array (utf8_encode($submatch[1][2]), $exception_name))
{
$track_name = trim($submatch[1][2]); // Name des Tracks
$track_artist = trim($submatch[1][1]); // Interpret des Tracks
$track_time = trim($submatch[1][0]); // Zeitpunkt als der Track gespielt wurde
if (strcmp ($now, '12:00:00') >= 0) { // server 23
if (strcmp ($track_time, '10:00:00') >= 0)
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d"), date("Y")));
else
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d")+1, date("Y")));
}
else { // server 00
if (strcmp ($track_time, '14:00:00') >= 0)
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d")-1, date("Y")));
else
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d"), date("Y")));
}
// Datum + Uhrzeit für MySQL-Datetime-Feld
$track_datetime = $track_date.' '.$track_time;
// Überprüfung auf bereits gespeicherte Tracks
if (strcmp ($track_datetime, $max) > 0) {
// Trage Track-Informationen in die MySQL-Datenbank ein
$db->query ("INSERT INTO playlist
VALUES (NULL, '$track_datetime', '".$track_name."', '".$track_artist."')");
echo"Track <b>$track_name</b> von <b>$track_artist</b> in MySQL-Datenbank eingetragen!<br />\n";
}else{
// wenn Track bereits mit dem Zeitpunkt in der Datenbank gespeichert
echo "<b>$track_name</b> von <b>$track_artist</b> bereits mit dem Zeitpunkt <b>$track_datetime</b> gespeichert!<br />\n"; }
}
}
}
?>
</body>
</html>
Was kann sein?
ich bastel gerade an einem Playlist mit Suchfunktion
Jedoch tut sich in der Datenbank garnichts,nicht mal
ein leerer eintrag wird erzeugt.
Das Gesamtprojekt besteht aus 2 Teilprojekten. Im ersten Schritt wird die vom DRS 2006-System exportierte HTML-Playlist in ein geeignetes Format überführt und in der MySQL-Datenbank gespeichert, damit die Suchfunktion darauf zugreifen kann. Der zweite Schritt ist der eigentliche Such-Algorithmus mit dem entsprechenden Frontend und die Anzeige
der aktuellen Playlist.
Hier der PHP-Code:
<html>
<head>
<meta http-equiv="refresh" content="30">
<title>get tracks</title>
</head>
<body>
<?php
/**
* Die Datei get_tracks.php überführt die Trackdaten von der HTML-Playlist
* in die MySQL-Datenbank.
*
*/
// Datei mit den MySQL-Zugangsdaten einbinden
include_once('db_config.php');
// Klasse die den Datenbankzugriff regelt einbinden
include_once('db_class.php');
// HTML-Playlist-Datei einlesen (implode() verbindet Array-Elemente zu einem String)
if($playlist_html_file = implode ('', file ('playlist.html'))) {
}else{
// falls keine Playlist gefunden wurde
echo"Keine HTML-Playlist zum einlesen gefunden<br />\n";
}
// Zeitpunkt des neuesten Tracks ermitteln für Überprüfung auf bereits gespeicherte Tracks
$select = $db->query ("SELECT max(created) as maxtrack FROM playlist");
$row = mysql_fetch_object($select);
$max = $row->maxtrack;
// Aktuelle Uhrzeit
$now = date ('H:i:s');
/*
Beginn der Extraktion der relevanten Daten aus der HTML-Datei. Hierzu wird die Funktion
preg_match_all() verwendet, welche global nach einem Suchmuster sucht. Die relevanten Informationen, die später in die Datenbank geschrieben werden, befinden sich innerhalb der <font>-Tags.
*/
if (preg_match_all ('/<tr[^>]*>(.*?)<\/tr>/mis', $playlist_html_file, $match) && is_array($match) && is_array($match[1])) {
foreach ($match[1] as $block) {
if (preg_match_all ('/<td[^>]*><font[^>]*>(.*?)<\/font><\/td>/i', $block, $submatch) &&
is_array ($submatch) && count($submatch[1]) == 3
&& substr($submatch[1][0], 0, 3) != '<b>'
//&& !in_array (utf8_encode($submatch[1][2]), $exception_name))
{
$track_name = trim($submatch[1][2]); // Name des Tracks
$track_artist = trim($submatch[1][1]); // Interpret des Tracks
$track_time = trim($submatch[1][0]); // Zeitpunkt als der Track gespielt wurde
if (strcmp ($now, '12:00:00') >= 0) { // server 23
if (strcmp ($track_time, '10:00:00') >= 0)
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d"), date("Y")));
else
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d")+1, date("Y")));
}
else { // server 00
if (strcmp ($track_time, '14:00:00') >= 0)
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d")-1, date("Y")));
else
$track_date = date ("Y-m-d", mktime (0,0,0,date("m"), date("d"), date("Y")));
}
// Datum + Uhrzeit für MySQL-Datetime-Feld
$track_datetime = $track_date.' '.$track_time;
// Überprüfung auf bereits gespeicherte Tracks
if (strcmp ($track_datetime, $max) > 0) {
// Trage Track-Informationen in die MySQL-Datenbank ein
$db->query ("INSERT INTO playlist
VALUES (NULL, '$track_datetime', '".$track_name."', '".$track_artist."')");
echo"Track <b>$track_name</b> von <b>$track_artist</b> in MySQL-Datenbank eingetragen!<br />\n";
}else{
// wenn Track bereits mit dem Zeitpunkt in der Datenbank gespeichert
echo "<b>$track_name</b> von <b>$track_artist</b> bereits mit dem Zeitpunkt <b>$track_datetime</b> gespeichert!<br />\n"; }
}
}
}
?>
</body>
</html>
Was kann sein?