/*
* Regisseur-Liste von Martin K.
*
*/
// Stellt eine Verbindung mit der Datenbank her
include_once('_dbinit.php');
#mysql_connect("localhost","sysdba","masterkey");
#mysql_select_db("filme");
#$link = mysql_connect("localhost","sysdba","masterkey");
include_once('funktionen.php');
// Test, ob die Datenbank videos schon existiert
if (!mysql_query("SELECT * FROM mk_videos WHERE 1", $link)) {
echo "
Die Datenbank fehlt! Bitte eine Datenliste zum Import auswählen!
";
error_reporting(0);
include('restore.php');
break;
error_reporting(E_ALL);
}
/* @ explain Hauptteil dieser Routine
*/
function liste_regie($abfrage,$anzeige){
// Filmtitel einlesen
$sql_film = "SELECT * FROM mk_videos WHERE 1 ORDER BY id ASC";
$result = mysql_query($sql_film) or die(mysql_errno().": ".mysql_error()."
".$sql_film);
// Alle Filmtitel in ein Array schreiben
while($row = mysql_fetch_array($result)){
$filmname[$row['id']] = $row['titel'];
}
$result = mysql_query($abfrage) or die(mysql_errno().": ".mysql_error()."
".$abfrage);
// Ausgabe in Tabellenform, der einfacheren Formatierung wegen
echo "
";
$nummer = 1;
while($row = mysql_fetch_array($result)){
echo "".$anzeige." | ".$nummer." | ";
echo " ".$row['name']." | ";
echo "mit insgesamt | ".$row['anzahl']." | Filmen:
| ";
echo "";
$lebenswerk = explode("+",$row['filme']);
$i = 0;
while ($i < count($lebenswerk)){
echo $filmname[$lebenswerk[$i]]." ";
$i++;
}
echo " |
";
$nummer++;
}
echo "
";
}
echo "";
echo " Zurück zur Video-Liste || ";
echo " Regisseurliste neu berechnen (bitte etwas Geduld...) || ";
echo " Auflistung nach Häufigkeit || ";
echo " Alphabetische Auflistung ";
echo "
";
// Test, ob die Datenbank regie schon gefüllt ist; ausgehend von der Annahme, daß irgendein Regisseur den Buchstaben a im Namen hat ...
if (!mysql_num_rows(mysql_query("SELECT * FROM mk_regisseur WHERE name LIKE '%g%'"))) {
// Datei vorbereiten
$filename = "Regisseur.txt";
$part = fopen ($filename, "w+");
$content = fread ($part ,65535);
$sql = "SELECT * FROM mk_videos WHERE 1 ORDER BY id ASC";
$result = mysql_query($sql) or die(mysql_errno().": ".mysql_error()."
".$sql);
// Alle Regisseure Film für Film in eine Datei schreiben
$startdat = microtime();
while($row = mysql_fetch_array($result)){
# echo "Film ID:".$row['id']." mit dem Titel -".$row['titel']."-
";
$ret = $row['regie'];
$ret = str_replace(" - ","\r\n",$ret);
$ret = str_replace(", ","\r\n",$ret);
$daten = explode("\r\n", $ret);
for ($i=0; $i";
// Die oben erstellte Datei auslesen, Regisseurliste Stück für Stück aufbauen
$startdat = microtime();
$part = fopen ($filename, "r");
$content = fread ($part, filesize($filename));
fclose ($part);
$daten = explode("\r\n", $content);
$datenmenge = count($daten);
unlink ($filename);
echo timer_mk($startdat)." für's Einlesen
";
$startdat = microtime();
$sql = "TRUNCATE TABLE `mk_regisseur`"; // Datenbank Darsteller leeren
mysql_query($sql);
// Schleife: alle Namen aus der Regisseurliste
for ($a=0; $a".$sql);
$row = mysql_fetch_array($result);
if ($row['id'] == ""){ // Neuanlegen
$sql = "INSERT INTO `mk_regisseur` (`id`, `name`, `anzahl`, `filme`) ";
$sql .= "VALUES ('', ";
$sql .= "'".$zeile[0]."', ";
$sql .= "'1', ";
$sql .= "'".$zeile[1]."')";
}else{ // Updaten
$anzahl = $row['anzahl'] + 1;
$filme = $row['filme']."+".$zeile[1];
$sql = "UPDATE `mk_regisseur` SET
`anzahl` = '".$anzahl."',
`filme` = '".$filme."'
WHERE `name` = '".$zeile[0]."';";
}
mysql_query($sql);
}
echo "Das Erstellen der Liste dauerte ".timer_mk($startdat)."
";
echo "
Erkannte Anzahl Regisseure: ".($datenmenge-1).", davon ";
echo mysql_num_rows(mysql_query("SELECT * FROM mk_regisseur WHERE 1"))." verschiedene.
";
}
switch($_GET['action']){
case "leeren" :
$sql = "TRUNCATE TABLE `mk_regisseur`"; // Datenbank Darsteller leeren
mysql_query($sql);
// Fenster schließen
echo "";
break;
case "abc" :
// Ausgabe aller Regisseure, in alphabetischer Reihenfolge ...
$sql = "SELECT * FROM mk_regisseur WHERE 1 ORDER BY name ASC";
echo "
Alle vertretenen Regisseure: (Alphabetische Reihenfolge)
";
liste_regie($sql,"Nummer");
break;
default :
// Standardaufruf: Anzeige der gefundenen Datensätze
// Ausgabe aller Regisseure, die mehr als 1 Film gemacht haben ...
$sql = "SELECT * FROM mk_regisseur WHERE anzahl > 1 ORDER BY anzahl DESC";
echo "
Die am häufigsten vertretenen Regisseure sind: (mehr als ein Film)
";
liste_regie($sql,"Platz");
break;
}
?>