2011-12-25 99 views
0

我有數據庫「DB2」與表「menjava」我想算基礎上DATETIME爲今天/昨天日期的所有行 - MYSQL + PHP

在表menjava具有「ID」,「作者」和「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"]; 
} 

    ?> 

謝謝!

回答

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.'; 
+0

嚴重性:NoticeMessage:未定義的變量:link2Filename:index.phpLine號碼:197 一個PHP錯誤遇到 嚴重性:WarningMessage:mysql_query():提供的參數不是有效的MySQL鏈接resourceFilename:index.phpLine Number:197 遇到PHP錯誤 嚴重性:WarningMessage:mysql_fetch_array():提供的參數不是有效的MySQL結果resourceFilename:index.phpLine數量:199 – 2011-12-25 14:03:57

+0

嚴重性:WarningMessage:mysql_fetch_array():提供的參數不是有效的MySQL結果資源 – 2011-12-25 14:09:09

+0

由外觀代碼查詢應該返回多個列。 – Karlson 2011-12-26 07:59:54

0

請嘗試以下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"; 
+0

請不要只是扔在一些代碼!給出幾行關於什麼是問題的解釋,以及您的答案如何解決。 – totymedli 2017-07-06 15:01:28

+0

好的,謝謝你的建議。 – Aman 2017-07-07 06:56:33