【问题标题】:I want to count all the rows for todays / yesterdays date based on a DATETIME - mysql+php我想根据 DATETIME 计算今天/昨天日期的所有行 - mysql+php
【发布时间】:2011-12-25 13:28:56
【问题描述】:

我有数据库“db2”和表“menjava”

在menjava表中有“id”、“author”和“date_submitted”字段

  • id - auto_increment
  • 作者 - int(11)
  • date_submitted - 日期时间

我想根据名为“date_submitted”的 DATETIME 字段计算今天日期的所有行和昨天日期的所有行(因此会有两个带有条件的代码),该字段包含每条记录的创建日期和时间。

在文件result.php中,显示了这个计数,但它不起作用。在同一个文件(result.php)中,我还有一些其他代码可以显示来自不同数据库的数据,所以我认为 povezava.php 工作正常。

我的代码:

 <?
    require "povezava.php";
    $q=mysql_query(" SELECT COUNT(*) AS total_number FROM menjava 
WHERE date_submitted >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)",$link2);
// now you can 
if ( $nt = mysql_fetch_array($q)){
echo $nt["total_number"];
$q=mysql_query($nt) or die(mysql_error());
}

    ?>

我的文件 povezava.php 如下所示:

<?
$servername='localhost';

$dbusername='user';
$dbpassword='pass';

$dbname1='db1';
$dbname2='db2';

$link1 = connecttodb($servername,$dbname1,$dbusername,$dbpassword);
$link2 = connecttodb($servername,$dbname2,$dbusername,$dbpassword);

function connecttodb($servername,$dbname,$dbusername,$dbpassword)
{
    $link=mysql_connect ("$servername","$dbusername","$dbpassword",TRUE);
    if(!$link){die("Could not connect to MySQL");}
    mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
    return $link;
}
    ?>

我得到的错误:

A PHP Error was encountered

Severity: NoticeMessage: Array to string conversionFilename: templates/master.phpLine Number: 231 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Array' at line 1

固定:

<?
    require "povezava.php";
    $q=mysql_query("SELECT COUNT(*) AS total_number FROM menjava WHERE date_submitted >= DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY)",$link2);
// working 
if ( $nt = mysql_fetch_array($q)){
echo $nt["total_number"];
}

    ?>

谢谢!

【问题讨论】:

    标签: php mysql count data-entry


    【解决方案1】:

    试试:

    $q = 'SELECT COUNT(*) FROM menjava
              WHERE date_submitted >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)';
    $result = mysql_query($q);
    $total_rows = mysql_fetch_row($result);
    print $total_rows[0] . ' authors have been submitted today and yesterday.'; 
    

    【讨论】:

    • 严重性:NoticeMessage:未定义变量:link2Filename:index.phpLine Number:197 遇到 PHP 错误严重性:WarningMessage:mysql_query():提供的参数不是有效的 MySQL-Link 资源文件名:index.phpLine编号:197 遇到 PHP 错误严重性:警告消息:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源文件名:index.php 行号:199
    • 严重性:警告消息:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源
    • 从代码上看,查询应该返回多列。
    • 一定要这样改吗? WHERE date_submitted >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY),$link2';
    • 我收到此错误:Severity: WarningMessage: mysql_fetch_row() expects parameter 1 to be resource, boolean givenFilename: templates/master.phpLine Number: 229 authors have been submitted today and yesterday.
    【解决方案2】:

    请尝试以下 SQL 命令:

    $sqlToday = "Select COUNT(*) FROM menjava WHERE DATE(date_submitted) = CURRENT_DATE()";
    
    $sqlYesterday = "Select COUNT(*) FROM menjava WHERE DATE(dc_created) = CURDATE() - INTERVAL 1 DAY";
    

    【讨论】:

    • 请不要随便输入一些代码!就问题所在以及您的答案如何成为解决方案给出几行解释。
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2011-07-27
    相关资源
    最近更新 更多