2017-03-04 3 views
0

Ich habe eine Tabelle Nachricht, in denen Felder sind: ID, Benutzername, Nachricht, lastdate. Ich möchte von diesen Daten (die in meiner Tabelle sind) zu dem aktuellen Datum vergleichen. Wenn der Unterschied 30 Tage beträgt, sollte der angegebene Nutzername auf der Admin-Seite angezeigt werden. Ich versuchte für Datum Unterschied, aber es funktioniert nicht.Unterschied zwischen gegebenem Datum und aktuellem Datum

Auch ich versuchte von diesem Code. Aber nichts passiert

<?php 
    include("connection.php"); 
    $queryd=mysql_query("select * from message") or die(mysql_error()); 
    while($resultd=mysql_fetch_array($queryd)) 
    { 
    extract($resultd); 
    $date1=date('Y-m-d'); 
    $date2=$lastdate; 


    $query12=mysql_query("SELECT username,DATEDIFF($date1,$date2) FROM message WHERE DATEDIFF($date1,$date2)<30") or die(mysql_error()); 
    while($result12=mysql_fetch_array($query12)) 
    { 
     if($result12) 
    echo $username; 
    else 
    echo"record not"; 
    } 
    } 
? 

Meine dritte Lösung ist hier. Ich denke, es funktioniert. Aber es wiederholt Werte.

<?php 
    include("connection.php"); 
    $queryd=mysql_query("select * from message") or die(mysql_error()); 
    while($resultd=mysql_fetch_array($queryd)) 
    { 
    extract($resultd); 
    $date1=date('Y-m-d'); 
    $date2=$lastdate; 
    $days = (strtotime($date2) - strtotime($date1))/(60 * 60 * 24); 

    $result123=mysql_query("select username from message where '$days'<30"); 
    while($query123=mysql_fetch_array($result123)) 
    { 
if($query123) 
echo $username."&nbsp".$days."<br>"; 
else 
echo mysql_error(); 
    } 
    } 

?> 
+0

Sind Sie sicher, dass Sie ein korrektes $ lastdate haben? versuch var_dump ($ lastdate) für check – scaisEdge

Antwort

1

Sie können diesen Datumsvergleich in Ihrem MySQL DBMS durchführen.

Diese Abfrage:

 SELECT username, message FROM message WHERE lastdate <= CURDATE() - INTERVAL 30 DAY 

Es sollte nur die Zeilen von Interesse zurückzukehren.

+0

Danke für die Antwort .... Fehler gefunden ........... Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, für die richtige Syntax, die in der Nähe von 'FROM-Nachricht WHERE lastdate <= CURDATE() - INTERVAL 30 DAY' in Zeile 1 verwendet werden soll –

Verwandte Themen