-1

次のコードに対して Ajax 呼び出しを実行しようとしていますが、500 エラーが発生します。私が間違っていたことについての指針は大歓迎です。ありがとう

if isset(($_POST['lodgeChoice']))
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/Includes/datalogin.php';
    $lodgeChoice = $_POST['lodgeChoice'];
    $startDate = $_POST['dateChosen'];
    $duration = $_POST['duration'];

    $endDate = strtotime($startDate. ' + ' . $duration . ' days');

    $mysql_query = 'SELECT id FROM bookings WHERE (the_date BETWEEN "' . $startDate . '" AND "' . $endDate . '") AND id_item = ' . $lodgeChoice;

    if($stmt = $mysqli->prepare('SELECT COUNT(*) FROM bookings WHERE (the_date BETWEEN "?" AND "?") AND (id_item = ?)');
        $stmt->bind_param("sss",$startDate, $endDate,$lodgeChoice);
        $stmt->execute();
        $stmt->bind_result($count);
        $stmt->fetch();
        $stmt->close();

        return ($count > 0 ? TRUE : FALSE);

}
4

1 に答える 1

2

エラーが非常に明確に表示されるため、構文の強調表示をサポートするコード エディターを使用することを強くお勧めします。

あなたのコードを Netbeans に貼り付けたところ、コード内の両方のifステートメントで即座にエラーのフラグが立てられました。

最初のもの: if 条件の周りに括弧がありません。(また、post 変数の周りに括弧が多すぎますが、エラーは発生しません)

if isset(($_POST['lodgeChoice']))
  ^                              ^
bracket reqd here              and here

2 つ目は、最後にセミコロンがありますが、これは間違っていますif()

//removed ; from end of the if() line:
if($stmt = $mysqli->prepare('SELECT COUNT(*) FROM bookings WHERE (the_date BETWEEN "?" AND "?") AND (id_item = ?)')
{    //added this line
    .....
    .....
}   //added this line as well.

それが役立つことを願っています。

私が言うように、まともなコード エディターはあなたの人生を非常に楽にしてくれます。また、非常に優れたエディターを無料で入手できるので、使用しない理由はありません。

于 2013-03-01T16:51:33.707 に答える