MYSQL Suchen und hochzählen mit Datum
Bildaufgaben
- datenbank
Hallo,
ich habe mir hier im Forum etliches zusammengeklaubt und habe ein Script gebaut welches aus einer Seite die Linktitel extrahiert und in eine Datenbank schreibt.
Dieses passiert zusammen mit einem Counter der hochzählt. Ich möchte das ganze nun aber auch nach Tagen unterscheiden können und habe hier nun die Tabelle "Tag" erstellt. Ich kann ja nun mit der Date Funktion einen Stempel erzeugen.
$date = date("ymd");
aber wie schaffe ich es das der counter nur bei dem entsprechendem datum welches ich mit $date ausgebe hochzählt?
Mein bisheriger Quelltext aus dem Forum zusammengebastellt.
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->agent = "intern";
$snoopy->fetch("test.html");
$inhalt = $snoopy->results;
preg_match_all('|<li><a href="(.*)</a></li>|Uism',$inhalt, $items, PREG_PATTERN_ORDER);
if (count($items[1])==0) {
preg_match_all('|<li><a href="(.*)</a></li>|Uism',$inhalt, $items, PREG_PATTERN_ORDER);
}
for ($i=0; $i<count($items[1]); $i++) {
preg_match_all('|/search/web/(.*)" target="_top"><span>(.*)</span>|Uism',$items[1][$i], $regs, PREG_PATTERN_ORDER);
$Ausgabe = $regs[2][0];
}
include("db.php");
$eintrag = "INSERT INTO webde (KEYWORD, HAEUFIGKEIT) VALUES ('$ausgabe', '$hauefigkeit') ON DUPLICATE KEY UPDATE `haeufigkeit` = `haeufigkeit` + 1";
$eintragen = mysql_query($eintrag);
Mahlzeit Bildaufgaben,
Dieses passiert zusammen mit einem Counter der hochzählt. Ich möchte das ganze nun aber auch nach Tagen unterscheiden können und habe hier nun die Tabelle "Tag" erstellt.
Eine ganze Tabelle? Sicher? Das wäre IMHO extrem sinnfrei. Zeig bitte mal die Struktur der Tabelle. Genauso die Struktur der Tabelle "webde" (warum auch immer die so heißt), in die Du ja die Einträge einträgst.
Ich kann ja nun mit der Date Funktion einen Stempel erzeugen.
$date = date("ymd");
Ja, kannst Du. Und was soll das bringen? Welches Datum willst Du denn wo eintragen? Und was soll das Datum aussagen?
aber wie schaffe ich es das der counter nur bei dem entsprechendem datum welches ich mit $date ausgebe hochzählt?
Wohin gibst Du es aus? Und um welches Datum handelt es sich? Das aktuelle Systemdatum des Servers? Welche Aussagekraft soll das haben?
$Ausgabe = $regs[2][0];
s.u.
$eintrag = "INSERT INTO webde (KEYWORD, HAEUFIGKEIT) VALUES ('$ausgabe', '$hauefigkeit') ON DUPLICATE KEY UPDATE
haeufigkeit
=haeufigkeit
+ 1";
Du solltest Dich mit dem Thema "SQL Injection" vertraut machen und Dir die Funktion mysql_real_escape_string() zu Gemüte führen.
Darüber hinaus ist es nicht sinnvoll, bei der Benennung bzw. Verwendung von Variablen Klein- und Großbuchstaben luStIG dUrcHEINandEr zu würfeln.
Wenn Du z.B. in der Tabelle "webde" ein Feld "DATUM" (vom passenden Typ) hättest und ein entsprechender UNIQUE-Constraint dieses Feld mit berücksichtigen würde, würde "automagisch" für jedes Schlüsselwort die Häufigkeit pro Datum ermittelt.
Bevor Du aber nicht mal auch für Nicht-Glaskugel-Besitzer genauer beschreibst, was Du eigentlich willst und um was für ein Datum es sich handeln soll, kann ich nur wild im Nebel herumstochern ...
MfG,
EKKi