• User Attivo

    confronto date da form con date presenti nel database

    Ciao a tutti!

    sto creando un piccolo form di prenotazione, dove l'utente inserisce
    il nome della stanza, la data di arrivo e partenza.

    All'invio del form lo script dovrebbe confrontare il tutto con le date presenti nel database,
    questo è quello che ho scritto, ma non funziona, impostando per esempio:

    se la data dal form è : arrivo: 16/04/2013 partenza: 30/04/2013
    la data presente nel database è: arrivo: 16/04/2013 partenza: 20/04/2013
    (mi stampa "ok", invece dovrei ottenere errore)

    invece inserendo nel form: arrivo: 17/04/2013 partenza 19/04/2013
    oppure : arrivo 16/04/2013 partenza 19/04/2013
    in questo caso funziona.

    Ho seguito l'esempio presente qui h t t p: // snipplr.com/view/41424/

    [PHP]
    if(isset($_POST['nome_stanza'])){

    $tipologia = $_POST['nome_stanza'];
    $arrivo = strtotime(str_replace("/","-", $_POST['arrivo']));
    $partenza = strtotime(str_replace("/","-", $_POST['partenza']));
    $query = "SELECT * FROM prenotazioni WHERE nome_stanza = '$tipologia'";
    $result = mysql_query($query, $conn) or die(mysql_error());
    $num = mysql_num_rows ($result);

    while ($row = mysql_fetch_assoc($result)) {
    $arrivoDB = strtotime($row['arrivo']);
    $partenzaDB = strtotime($row['partenza']);

    if ($result != '0'){

    if($tipologia == $row['nome_stanza'] && $arrivo >= $arrivoDB && $partenza <= $partenzaDB)
    {
    echo "ok la data non è presente"; }

    else{

    echo "errore la data già è occupata";}

    }
    

    }
    }
    [/PHP]

    grazie a tutti!


  • User Attivo

    @puleddu said:

    Ciao!

    In effetti, verificando il codice e l'esempio che hai citato, lo script dovrebbe funzionare come dici.
    Hai provato a stampare (per debug) i dati in POST e quelli presi dal DB? È possibile che il problema sia un banale scambio dei dati presi dai campi del form.

    Facci sapere!

    Ciao puleddu grazie mille per la tua risposta!
    Alla fine ho risolto diversamente estraendo le date tramite query con beetween.

    grazie ancora!