我在数据库t_calibrator(calperiod = 12,24和36)中有int
个月的数据,我想用$callast
中的输入日期计算,
这是我创建的代码(但总是得到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)));
但显示如下错误:
解析错误:语法错误,意外' calperiod' (T_STRING), 期待','或者')'在 /storage/h7/747/1148747/public_html/pages/calinputhistory.php上线 19
任何人都可以帮我解决这个问题吗? (抱歉我的英语不好)
答案 0 :(得分: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)));
答案 1 :(得分: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);
}