2017-03-23 31 views
0

我有int數據(calperiod = 12,24和36)個月,我想在我的$callast輸入的日期來計算,PHP:如何從數據庫中添加月份數量?在數據庫t_calibrator

這是我創建的代碼(但總是1970-01-01) :

$calperiod = mysqli_query($conn, "SELECT calperiod FROM t_calibrator WHERE id_calibrator='$id_calibrator'"); 
$add = date('Y-m-d', strtotime('+".$calperiod" month', strtotime($callast))); 

我的參考碼從$add = date('Y-m-d', strtotime('+24 month', strtotime($callast)));得到,是的,但是隻有24個月。

UPDATE 現在我嘗試使用此代碼:

$sql = "SELECT * FROM t_calibrator WHERE id_calibrator = '$id_calibrator'"; 
$result = mysqli_query ($conn,$sql); 
$caldata = mysqli_fetch_array ($result); 
$add = date('Y-m-d', strtotime('+".$caldata['calperiod']." months', strtotime($callast))); 

但是這樣的示值誤差:

Parse error: syntax error, unexpected 'calperiod' (T_STRING), expecting ',' or ')' in /storage/h7/747/1148747/public_html/pages/calinputhistory.php on line 19

任何一個可以幫我這個麻煩? (對不起我的英文不好)

+0

您錯過了$ calperiod後的點。 $ add = date('Y-m-d',strtotime('+'。$ calperiod。'month',strtotime($ callast))); –

+0

@MayaShah如果我使用你的代碼,我得到這個:可恢復的致命錯誤:類mysqli_result的對象不能轉換爲字符串 –

+0

你從$數據庫中獲得$ calperiod的值? –

回答

0

更新你的代碼像下面

$result = mysqli_query($conn, "SELECT calperiod FROM t_calibrator WHERE id_calibrator='$id_calibrator' LIMIT 1"); 

$row = mysqli_fetch_assoc($result); 

$add = date('Y-m-d', strtotime('+'.$row['calperiod'].' months', strtotime($callast))); 
+0

相同像瑪雅,如果我使用你的代碼,我得到這個:可恢復的致命錯誤:類mysqli_result的對象不能轉換爲字符串 –

0

mysqli_query的回報可以是一個結果集(如果查詢執行成功)或FALSE如果發生錯誤。測試mysqli_query的返回值,如果不是FALSE,則獲取一行。如果我們有一行,請從calperiod列中獲取值。

$sql = "SELECT calperiod FROM ... ORDER BY ... LIMIT 1"; 
if($sth = mysqli_query($conn,$sql)) { 
    if($row = mysqli_fetch_assoc($sth)) { 
     $calperiod = $row["calperiod"]; 
     echo $calperiod; 
     // we have a value ... 

    } else { 
     echo "no row returned"; 
    } 
} else { 
    echo "error in query execution"; 
    die(mysqli_error($conn); 
} 
+0

對不起,我不明白:( –

+0

'mysqli_query'函數不返回'calperiod'的一個*值*,它返回一個* resultset *的句柄,一個零,一行或多行的引用如果我們想從一個*行*在結果集中,我們必須*從* resultset *中獲取*一行。 – spencer7593