简体   繁体   English

如何使用MySQL和PHP按日期对行进行计数

[英]How to count rows by date using MySQL and PHP

Well, I am developing Vote system where, i am selecting data from database using following code: 好吧,我正在开发Vote系统,在这里我要使用以下代码从数据库中选择数据:

// Select info about vote
        $select_information = mysql_query("SELECT * FROM `Vote` WHERE `VoteID` = '$VoteID';");
            $take = mysql_fetch_array($select_information);
            $createdBy = $take["Username"];
            $InstaCredit = $take["InstaCredit"];
            $activeVote = $take["Available"];
            $select_last_vote = mysql_query("SELECT `Date` FROM `voteslist` WHERE `IP` = '$ip' AND `VoteID` = '$VoteID' order by `Date` DESC LIMIT 1;");
            $select_last_vote = mysql_fetch_array($select_last_vote);
            $dbdate = $select_last_vote["Date"];

## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## 
// Here i am select date. retrieve just the date part
            $takeResult = mysql_query("SELECT DATE_FORMAT(STR_TO_DATE('$dbdate', '%d/%m/%Y' ), '%d/%m/%Y') as Date ;");
            $Result_date = mysql_fetch_array($takeResult);
            $result_date = $Result_date["Date"];
            $today = date("d/m/Y");
            $thanks_to = $createdBy;

// here my problem. I want count all votes from today.
            $today_voting_query = "SELECT DATE_FORMAT(STR_TO_DATE('$dbdate', '%d/%m/%Y' ), '%d/%m/%Y') as Date COUNT(`ID`) FROM `voteslist` WHERE `VoteID` = '$VoteID' AND `Date` = '$result_date';";
            $today_voting = mysql_fetch_array($today_voting_query);
            $today_voting = $today_voting[0];
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##

            //now compare your dates
            if($result_date == $today)
            {
                echo "<span class='thanks-for-voting voted'>
                error <strong>{$thanks_to}</strong>
                </span><br />
                <span class='note-vote voted'>You can vote one time in 24 hours</span>";
            }
            else {
                echo "
                <span class='thanks-for-voting'>
                Thanks for vote to <strong>{$thanks_to}</strong>!
                </span>
                ";
            }
    ?>
        <div class="statics">
        <span id="static-title">Statics <?php echo $thanks_to; ?></span><hr />
        <span id="static-q">Today votes:</span> <span id="static-a"><?php echo $today_voting; ?></span><br />
        <span id="static-q">Votes:</span> <span id="static-a">19</span><br />
        </div>

I need to count and print the value of Today's votes by the following variable: $today_voting 我需要通过以下变量来计数和打印“今日”投票的价值: $today_voting

see: Select date from my db without seconds using PHP MySql 请参阅: 使用PHP MySql从我的数据库中选择日期,而无需秒

You forgot a comma between the fields in your select statement. 您忘记了select语句中的字段之间的逗号。

Please change 请更换

DATE_FORMAT(STR_TO_DATE('$dbdate', '%d/%m/%Y' ), '%d/%m/%Y') as Date COUNT(`ID`)

to

DATE_FORMAT(STR_TO_DATE('$dbdate', '%d/%m/%Y' ), '%d/%m/%Y') as Date, COUNT(`ID`)

You should also change $today_voting[0]; 您还应该更改$today_voting[0]; to $today_voting[1]; $today_voting[1]; because the voting count is the second column you are selecting. 因为投票计数是您选择的第二列。 The first column ( $today_voting[0] ) contains the formatted date. 第一列( $today_voting[0] )包含格式化的日期。

Put comma between Date & COUNT(ID) DateCOUNT(ID)之间放置逗号

$today_voting_query = "SELECT 
DATE_FORMAT(STR_TO_DATE('$dbdate', '%d/%m/%Y' ), '%d/%m/%Y') as Date, 
COUNT(ID) AS countID FROM `voteslist` WHERE `VoteID` = '$VoteID' AND `Date` = '$result_date';";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM