PHP / Jquery自动检查数据然后插入

时间:2014-04-02 10:23:58

标签: php jquery ajax

例如,我有以下数据

Name        Date  
Aplha    10/05/1988 
Bravo    10/04/1999
Charlie  10/08/1990

我正在尝试每分钟制作一次自动检查数据(数据库), 并将其与计算机上的当前日期进行比较,如果相同,我可以插入生日快乐等消息。

有人可以为此提供参考或解决方案,将不胜感激。 它喜欢通知但在这种情况下它会自动发送消息

编辑过的笔记 - nvm我得到了它...更新脚本<​​/ p>

我的js

$(function()
{

setInterval(function() {
    $.ajax({
        url: "dooBday.php",
        success: function (data) {
            $("#feedback").html(data);
        }
    });
}, 1000 * 60);


});

我的dooBday功能

$tgl=date("d/m");
$tglInt=date("d/m");
$tglInt=preg_replace( '~\D~', '', $tglInt);
$tglInt=intval($tglInt);

// Database Object
$tablename = "Phonebook_New";
$tablename2 = "USER_ID";
$xo=0;
$xx=0;
$VinDB = new VinDB();

// Get Data
$query2 = "SELECT * FROM ".$tablename2." WHERE UserID='".getMultiUserID()."'";
$result2 = $VinDB->query($query2);

if ($VinDB->num_rows($result2) != 0)
{
    $line2 = $VinDB->fetch_array($result2);

    if($line2["bdaySts"]==1 and strlen(trim($line2["bdayMsg"])) > 0){

    // Get Data--------------------------------
    $query = "SELECT * FROM ".$tablename." WHERE User_ID='".getMultiUserID()."' AND bdaySent='x'";
    $result = $VinDB->query($query);

    if ($VinDB->num_rows($result) != 0)
    {
    while ($line = $VinDB->fetch_array($result))
    {

        if(!empty($line["Ultah"])){

        $tglNew=substr($line["Ultah"], 0, -5);
        if($tgl==$tglNew){

            $datex = date('Y/m/d');
            $timex = date('H:i:s');
            $schedule= date($datex . '-' . $timex);

        //doo Update Contact Sent--------------------   
        $sqlquery[$xo]="UPDATE ".$tablename." SET bdaySent='Sent' where User_ID='".getMultiUserID()."' and nomor='".$line["nomor"]."'";
        $xo++;

        // doo Send Message----------------------------
            $inuquery[$xx] = "INSERT INTO Schedule ";
            $inuquery[$xx] .= "(message,phone_number,Schedule,Status,User_ID) ";
            $inuquery[$xx] .= "VALUES ('".$line2['bdayMsg']."','".$line['PhoneNumber']."','".$schedule."','Processing','";
            if (isset($_SESSION['user_id2']))
            {
                $inuquery[$xx] .= $_SESSION['user_id2']."')";
            } else {
                $inuquery[$xx] .=  "Unknown')";
            }
            $xx++;

        }}

    }//end while

    }// end if

    }

}//end send bday

for($i=0;$i<$xo;$i++){

    $result = $VinDB->query($sqlquery[$i]);
    $result2 = $VinDB->query($inuquery[$i]);
}

1 个答案:

答案 0 :(得分:0)

我想你想要用户。如果我是对的。你可以这样做。

将此代码放在您希望每分钟检查的页面上

setInterval(function() {
    $.ajax({
        url: "ajx.php",
        success: function (data) {
            $("#feedback").html(data);
        }
    });
}, 1000 * 60);

这将是你的ajax.php文件

<?php
// Name        Date  
// Aplha    10/05/1988 
// Bravo    10/04/1999
// Charlie  10/08/1990

$alphaDob = '02/04/1988';
$exp = explode('/', $alphaDob);

$userDate = $exp[0];
$userMonth = $exp[1];

$currentDate = date('Y-m-d');
$exp = explode('-', $currentDate);

$currentDate = $exp[2];
$currentMonth = $exp[1];

if($currentMonth == $userMonth && $currentDate == $userDate) {
    echo 'Happy Birthday';
} 

为了获得良好的性能,请使用Ajax-Long-Polling函数,例如Long-Polling Example