Hilfe bei Date-Abfrage aus sql mittels php...

susan_freise

Grünschnabel
Hallo, habe mal eine simple Frage.

Ich möchte mittels einer if Abfrage ein Bild einblenden. Aber nur wenn der Artikel neu ist.

In der Datenbank gibt es das Feld article_date_added, dort liegt das Datum im
folgenden Format: 2004-09-14 08:59:22


Wie müßte dann die if Abfrage aussehen, damit er mir z. B. bei Artikeln die neu sind (z. B. bis 2 Tage alt) ein Bild anzeigt?

<?php if ($article_info['article_date_added'] > 0) { ?>
BILDERPATH

<?php } ?>

Vielen Dank im Voraus
LG SUSA
 
Dazu deffinierst du, was neu sein soll.

$neuist=""; // bis gestern oder vorgestern

spähter mit WHERE date > '$neuist' LIMIT 1

dann prüfst du mit if ob ein Datensatz zurückgegeben wurde

if(isset()){
Ausgabe } else { keine Ausgabe }

So zumindest gedanklich!

Grüsse!
 
Kann dir leider nicht ganz folgen :(,

aber das Datum steht schon in der DB. Er soll also nur abfragen ob das Artikel Datum z.b. älter als ein tag ist, wenn ja kein Bild. Hab nur keine Ahnugn wi eich das am besten machen kann.

LG Susa
 
Also ich würde das ganze wie folgt machen:

Nachdem du den gesamten Eintrag aus der Datenbank abgerufen hast (das machst du ja sicher in einer while Schleife) übersetze die SQL Zeitangabe (innerhalb der Schleife) "2004-09-14 08:59:22" in einen Unix Timestamp mit der Funktion mktime() (siehe dazu http://www.selfphp.de/funktionsreferenz/datums_und_zeit_funktionen/mktime.php )
Vor der while Schleife frage die aktuelle Serverzeit mittels time() ab.
Vergleiche nun die beiden Ergebnisse aus mktime() und time(). Wenn time() 1 Tag also entsprechend 86400 Sekunden größer ist als mktime() blende Grafik nicht ein, oder anders herum. Würde so aussehen:

PHP:
$zeit = time();

$abfrage = mysql_query(...);
while($erg = mysql_fetch_array($abfrage))
{
      ......
      $datum = explode(" ",$erg[datum]);
      $tag = explode("-",$datum[0]);
      $uhrzeit = explode(":",$datum[1]);
      $unix_zeit = mktime($uhrzeit[0],$uhrzeit[1],$uhrzeit[2],$tag[1],$tag[2],$tag[0]);
      if( ($unix_zeit + 86400) > $zeit )
      {
            echo"<img src=\"...\">";
      }
}

Prinzipiell würde ich dir jedoch empfehlen die Zeit gleich als Unix-Timestamp in deiner Datenbank zu speichern.
 
Zuletzt bearbeitet:
Zurück