- Registriert
- 07.12.06
- Beiträge
- 1.139
Also vor ein paar Tagen ist mir mal die Idee gekommen, meine angesammelten SPIEGEL-Hefte (~3 Jahre) etwas zu sortieren und das Inhaltsverzeichnis in eine Datenbank einzupflegen, getrennt nach Heftnummer/Jahr.
Hab inzwischen die letzten 2 Hefte in eine (MySQL-)Datenbank geschrieben (Datenbankaufbau siehe Bild (Original sind verlinkt)):
Die Ausgabe sieht folgendermaßen aus:
und läuft über eine jQuery-Ajax-As-you-type Abfrage der Datenbank, das Backend sieht wie folgt aus:
Das heißt bei ~150 Tabellen (á ~35 Einträgen) würde er eine Riesen-Query zusammenbasteln und bei jeden neuen eigegebenen Buchstaben erneuern (das jQuery-As-you-type), deshalb die Effizienzfrage: ist das wirklich sinnvoll? Hier muss man jedoch hinzusagen, dass das nicht auf einem öffentlich zugänglichen Webserver laufen soll, sondern nur auf dem bei Leopard integrierten, den ich bei Nichtbenutzung abschalte. Und was ich eigentlich noch einbauen wollte, jedoch nicht genau weiß wie, ist, dass bei jedem Eintrag bei der Ausgabe (siehe Bild) die Spiegel-Nr. + Jahreszahl mit ausgegeben werden soll - hätte da jemand eine Idee zu? Danke schonmal
Hab inzwischen die letzten 2 Hefte in eine (MySQL-)Datenbank geschrieben (Datenbankaufbau siehe Bild (Original sind verlinkt)):
Die Ausgabe sieht folgendermaßen aus:
und läuft über eine jQuery-Ajax-As-you-type Abfrage der Datenbank, das Backend sieht wie folgt aus:
Code:
<?php header("Content-Type: text/html; charset=utf-8");
// SQL-Connection-details - Config.php
$dbhost = 'localhost';
$dbuser = 'root';
$dbname = 'spiegel';
$dbpass = '';
// Establish connection - opendb.php
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname);
mysql_set_charset("utf8");
$term = htmlspecialchars(substr($_POST['search_term'],0, 100));
$term = mysql_real_escape_string($term);
$term = strip_tags($term);
$term = addslashes($term);
$query = "SHOW TABLES FROM spiegel";
$query2 = "";
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result) > 0) {
while($row = mysql_fetch_array($result)) {
$query2 .= "(SELECT * FROM `$row[0]` WHERE Ressort LIKE '%$term%' OR Thema LIKE '%$term%' OR Titel LIKE '%$term%')";
$query2 .= " UNION ";
}
}
$query2 = substr($query2, 0, -7);
$string = "";
$result2 = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($result2) > 0) {
while($row2 = mysql_fetch_object($result2)) {
$string .= "<strong>".$row2->Ressort."</strong> - ";
$string .= "<strong>".$row2->Thema.":</strong> ";
$string .= $row2->Titel."</a>";
$string .= " (<em>Seite <strong>".($row2->Seite).".</strong></em>)";
$string .= "<br/>\n";
}
}
else {
$string = "Keine Ergebnisse!";
}
echo $string;
?>
Das heißt bei ~150 Tabellen (á ~35 Einträgen) würde er eine Riesen-Query zusammenbasteln und bei jeden neuen eigegebenen Buchstaben erneuern (das jQuery-As-you-type), deshalb die Effizienzfrage: ist das wirklich sinnvoll? Hier muss man jedoch hinzusagen, dass das nicht auf einem öffentlich zugänglichen Webserver laufen soll, sondern nur auf dem bei Leopard integrierten, den ich bei Nichtbenutzung abschalte. Und was ich eigentlich noch einbauen wollte, jedoch nicht genau weiß wie, ist, dass bei jedem Eintrag bei der Ausgabe (siehe Bild) die Spiegel-Nr. + Jahreszahl mit ausgegeben werden soll - hätte da jemand eine Idee zu? Danke schonmal