2017-08-06 10 views
2

問題はこれですデータベースの日付間の日付を確認

私の日付は私のDB内のすべての日付の間にあります。 これは私のコードです:

if ($result = $con->query("SELECT `r_id` FROM `reservation` WHERE $cid BETWEEN `r_start` AND `r_ende` ")) { 

    $r = mysqli_fetch_assoc($result); 

    } 

$a=0; 

    if($r>$a) 
    { 
     $message = "Your Startdate lies in an already booked span."; 
     echo "<script type='text/javascript'>alert('$message');</script>"; 
     echo "<script>window.location='reservation.php';</script>"; 
    } 

私のDBが動作し、正確である私の開始日が、あるこの

r_id r_start  r_ende 
    9 0004-01-24 0004-06-02 
    8 0004-01-23 0004-06-02 

$cidのように見えます。

時間軸の間にある行のr_idを取得する必要があります。 IDがカウントアップすると、常に0より上になるため、$rが一致すると、0より大きくエラーが表示されます。 したがって$cid0004-01-25の場合、$rは9または8なので、メッセージが表示されるはずです。しかし、それは.. として私はprint_r($result);私はmysqli_result Object ([current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 0を得る。 print ($r);の場合は何も表示されません。

誰かが私を助けることができますか?

+0

このコードを実行中に誰かがスロットを予約するとどうなりますか? – Strawberry

答えて

0

@ChandraKumarはあなたのエラーは、私が意志が何であるかを言おうとしていないので、この

$sql = "SELECT * FROM reservation where '".$cid."' between r_start and r_ende"; 
if ($result = $con->query($sql)) { 
    $r = mysqli_fetch_assoc($result); 
} 
$a = 0; 
if($r > $a) 
{ 
    $message = "Your Startdate lies in an already booked span."; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
    echo "<script>window.location='reservation.php';</script>"; 
} 
+2

エラーを教えてください。 – Geoffrey

2

を試してみてください。

日付を引用符で囲まないと、MySQLは数式として扱います。 MySQLは、それは文字列です表示され、日付列に対するあなたのチェックをするので、それが日付として解釈されます、その時点であなたは引用符であなたの日付を囲む必要があり

0004-01-24 = 4 - 1 - 24 = -21

+0

ありがとう!非常に役立ちます! – pr0cz

-2
$sql = "SELECT * FROM reservation where '.$cid.' between r_start and r_ende"; 
    $result = $conn->query($sql); 
    $result ->setFetchMode(PDO::FETCH_ASSOC); 
    $rows = $result ->rowCount(); 

    if($rows > 0) 
    { 
     $message = "Your Startdate lies in an already booked span."; 
     echo "<script type='text/javascript'>alert('$message');</script>"; 
     echo "<script>window.location='reservation.php';</script>"; 
    } 
+2

質問に答えようとしている場合は、その解決策が何であるか、そしてその理由を人に話してください! – Geoffrey

関連する問題