通过jquery和php获取下一条/上一条记录

通过jquery和php获取下一条/上一条记录,php,jquery,Php,Jquery,我有一个网站,可以阅读棒球比赛的数据。首先,网站显示比赛日期和分数: $.post('../php/getGameDates.php', function(returnedDates) { var objDates = jQuery.parseJSON( returnedDates ); $('#content').hide(); var pubStr = ""; for (var a=0; a<objDates.length; a++) {

我有一个网站,可以阅读棒球比赛的数据。首先,网站显示比赛日期和分数:

$.post('../php/getGameDates.php', function(returnedDates) {
    var objDates = jQuery.parseJSON( returnedDates );
    $('#content').hide();

    var pubStr = "";
    for (var a=0; a<objDates.length; a++) {
        var dateParts = objDates[a].game_date.split("-");
                    var mo;
                    switch(dateParts[1]) {
                        case "04":
                            mo = "April"
                            break;
                        case "05":
                            mo = "May"
                            break;
                        case "06":
                            mo = "June"
                            break;
                        case "07":
                            mo = "July"
                            break;
                        case "08":
                            mo = "Aug."
                            break;
                        case "09":
                            mo = "Sept."
                            break;
                        case "10":
                            mo = "Oct."
                            break;
                        default:
                            break;
                    }
                    var day = dateParts[2].replace(/^0+/, '');

        pubStr += "<div class='game_to_click' id='" + objDates[a].game_date + "'>" + mo + " " + day + ", " + dateParts[0] + ": " + objDates[a].score + "</div>"
    }
    $('#game_dates').append(pubStr);
...
});
$.post('../php/getGameDates.php',函数(returnedDates){
var objDates=jQuery.parseJSON(returnedDates);
$(“#内容”).hide();
var pubStr=“”;

对于(var a=0;a我的想法是按顺序加载游戏,而不是按日期加载。然后您可以重新编码以显示前一个“游戏”而不是“前一天的游戏”(或第二天的游戏)等等……它更准确地描述了你所描述的游戏序列。这样一来,前一个游戏的日期只是关联信息,但很容易成为显示的一部分


如果您对此不感兴趣,您可以将日期加载到一个包含相关游戏的数组中(日期是关键,游戏或无游戏是数据)。在没有游戏的日期,您可以在显示选项中显示这些内容。

我没有很好地表达我的问题,但我同时遇到了两个问题。部分问题是单击事件触发多次,包括“下一步”和“上一步”按钮(请参阅 ):


问题的另一部分是找到下一个或上一个日期,这里是@glennw(下图)是正确的。

您所说的“日期跳过一天”是什么意思?是业务逻辑还是程序问题?更简单的查询日期>=$date并限制为1,以便从数据库获取下一场比赛问题似乎与我单击下一个或最后一个按钮有关,单击次数呈指数增长:第一次单击-行为就像我单击它1次一样me;第二次单击-表现为我单击了2次;第三次单击-表现为我单击了4次;第四次单击-表现为我单击了8次(2乘以0的幂,然后1,然后2,然后3)。这似乎不是答案。似乎与我单击“下一步”或“最后一步”按钮有关,单击次数呈指数级增长:第一次单击-表现为我单击了1次;第二次单击-表现为我单击了2次;第三次单击-表现为我单击了4次;第四次单击-表现为我单击了8次(2是0的幂,然后是1,然后是2,然后是3)。再看一眼,你的答案是答案的一部分,但结果是我同时遇到了两个问题。谢谢!
<?php
include_once ('../../../homicide/php/constants_test.php'); 
// connect to database
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); //open db conn
if (mysqli_connect_errno()) {
        printf("Connect failed: %s", mysqli_connect_error());
        exit();
}
//date_default_timezone_set('America/New_York');
$thisDate = $_POST['thisDate'];
//echo $thisDate;
//$time = strtotime($thisDate . ' - 1 day');
//$newDate = date('Y-m-d',$time);
$parts = explode("-", $thisDate);
$day = $parts[2];
if (substr($day, -2) == "0") {
    $day = substr($day, -1);
    $day = intval($day);
}
$day--;
$newDate = $parts[0] . "-" . $parts[1] . "-";
//echo '$day: ' . $day;
if (strlen($day) < 2){
    $newDate .= "0";
}
$newDate .= $day;
//echo "new: " . $newDate . " ";
tryQuery($newDate, $mysqli);

function tryQuery($thisDate, $mysqli) {
    $q = "SELECT * FROM pirates_games where game_date = '" . $thisDate . "'";
    $result = $mysqli->query($q);
    $row_cnt = mysqli_num_rows($result);
    //echo $row_cnt;
    if ($row_cnt > 0) {
        while($row = $result->fetch_array(MYSQLI_ASSOC)) {
            $arrGame = $row;
        }
        echo json_encode($arrGame);
        mysqli_close($mysqli);
    }
    else {
        //echo 'date on entry: ' . $thisDate . " ";
        $parts = explode("-", $thisDate);
        $day = $parts[2];
        if (substr($day, -2) == "0") {
            $day = substr($day, -1);
            $day = intval($day);
        }
        $day--;
        $newDate = $parts[0] . "-" . $parts[1] . "-";
        //echo '$day: ' . $day;
        if (strlen($day) < 2){
            $newDate .= "0";
        }
        $newDate .= $day;
        //echo "new: " . $newDate . " ";
        //$time = strtotime($thisDate . ' - 1 day');
        //$newDate = date('Y-m-d',$time);
        //echo "new: " . $newDate;
        tryQuery($newDate, $mysqli);
    }
} 

?>     
$(".next").unbind().click(function() {
    //Stuff
});

$(".prev").unbind().click(function() {
    //Stuff
});