2017-03-23 11 views
0

私は数ヶ月のデータベースt_calibratorでintデータを(calperiod = 12、24および36)があると私は$callastに私の入力日付を計算したい、PHP:データベースから月の日付を追加する方法は?

この私の作成したコード(常に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の後にドットが欠けています。 $ =日付追加( 'Y-M-D' のstrtotime( '+' の$ calperiodを '月' のstrtotime($のcallast))。)。私はあなたのコードを使用している場合、私はこの –

+0

@MayaShahを得た:回復可能致命的なエラー:クラスmysqli_resultのオブジェクトは、データベースからの$ calperiodのために取得しているその値は文字列 –

+0

に変換することができませんでしたか? –

答えて

0

mysqli_queryからの戻り

以下
$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

のようにコードを更新し、エラーが発生した場合の結果セット(クエリの実行が成功した場合)または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

に変換することができませんでした'calperiod'の*値*を返す。これは、*の結果セット*、ゼロのセット、1つ以上の行への参照にハンドルを返します。私たちは*値を取得したい場合は*の*コラム*から*行*は結果セットに含まれているので、* resultset *から1行をフェッチする必要があります。 –

+0

'mysqli_query'機能はない文字列 – spencer7593

関連する問題