[英]How to count rows by date using MySQL and PHP
好吧,我正在开发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>
我需要通过以下变量来计数和打印“今日”投票的价值: $today_voting
您忘记了select
语句中的字段之间的逗号。
请更换
DATE_FORMAT(STR_TO_DATE('$dbdate', '%d/%m/%Y' ), '%d/%m/%Y') as Date COUNT(`ID`)
至
DATE_FORMAT(STR_TO_DATE('$dbdate', '%d/%m/%Y' ), '%d/%m/%Y') as Date, COUNT(`ID`)
您还应该更改$today_voting[0];
到$today_voting[1];
因为投票计数是您选择的第二列。 第一列( $today_voting[0]
)包含格式化的日期。
在Date
和COUNT(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.