1k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von it304 Einsteiger_in (81 Punkte)
Hallo Gemeinde,

ich brauche mal wieder eure Hilfe.

Folgendes Bild soll sein.

Über eine Php-Datei soll in einen SQL-Datenbank alle 30 Sekunden Daten eingetragen werden, wenn diese nicht schon vorhanden sind.

Die Tabelle besteht nur aus drei Spalten:
Datum:
Moderator:
Titel:

Momentan haben wir das Problem das er immer einen Eintrag in die DB macht. Wo liegt der Fehler ?

Der Befehl:

$db_datum = mysql_query("SELECT 'Datum' FROM 'shoutcast' ORDER BY 'shoutcast'.'Datum' DESC LIMIT 1");
$db_datum_neu = mysql_fetch_object($db_datum);
$db_time = $db_datum_neu->Datum;
if ($time != $db_time)
{
$result = mysql_query("INSERT INTO shoutcast (Datum, Moderator, Titel) VALUES ('$time', '$moderator', '$titel')");
}
echo $time;
echo '<br />';
echo $titel;
echo '<br />';
echo $moderator;
echo '<br />';
echo $db_time;
echo '<br />';
$datum = date("d.m.Y",$db_time);
echo $datum;

also ECHO-Ausgabe erscheint folgendes:

1372675904
Dee C. Lee - See The Day
Musikbox

01.01.1970

Habt ihr da einen guten Tipp, warum er nicht überprüft ?

Grüße
Celly

1 Antwort

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo Celly,

soweit ich das lese, holst du aus der Datenbank den EIntrag mit dem neuesten Datenfeld 'Datum" und legst das Datum in $db_time ab.
Dann vergleichst du $db_time mit $time, und bei Ungleichheit der beiden schreibst du einen neuen Datensetz in die Datenbank.
Wie der anschließende Ausdruck zeigt, sind die beiden unterschiedlich. $time hat den Wert 1372675904 und $db_time ist vor der Formatierung über date() nicht druckbar. Demzufolge wird der Vergleich auch Ungleichheit anzeigen und die Datenbank wird zu Recht beschrieben.
Prüfe doch mal, wie die Variablen $db-time und $time formatiert sind und wie sie zustande kommen. Für den Vergleich der beiden müssen die Formate übereinstimmen.

Gruß
computerschrat
...