• User Newbie

    Creare codice PHP per controllo form.

    Ciao a tutti sono nuovo di questo Forum che è bellissimo e approfitto subito per chiedere aiuto,
    ho due tabelle

    tabella prenotazioni
    id_prenotazione
    id_posto
    data
    coperti

    tabella posti
    id_posto
    posizione
    totale_posti

    vorrei poter fare in modo che quando clicco salva sul form di una nuova prenotazione possa controllare con codice php questi eventi

    rispetto alla data presente nel form, e al id_posto scelto fai la somma dei coperti e confrontala con il totale_posti, della tabella posti/posizione del form e quindi verifica che il dato "coperti" del form sia <= al risultato calcolato.

    Se questa condizione viene rispettata "true"
    save record
    Se non viene rispettata "false"
    echo....Non ci sono posti disponibili per questa data.....

    Ringrazio chiunque mi volesse dare un aiuto a risolvere questa situazione.


  • User Attivo

    Salve e benvenuto!!
    allora, l'unico intoppo ke possiamo avere è il formato della data ke viene fuori dal tuo form: credo (spero) ke nella tabella "prenotazioni" il campo "data" sia un intero, per rappresentare il formato unix timestamp, quindi bisogna convertire anche la data ke viene fuori dal tuo form in quel formato.

    Facci sapere questi particolari e procediamo con la query 😄
    notte


  • User Newbie

    Nella tabella prenotazioni il formato della data e campo (date) memorizzata è:
    2008-10-25 (dal form arriva 25/10/2008), e quando lo visualizzo richiamato dal database lo visualizzo in modo corretto.


  • User Attivo

    Allora basta splittare la data proveniente dal form e "adattarla" al formato "date" di mysql:
    [php]<?php
    //creo un array separando la stringa con "/"
    $arr_data = explode("/",$_POST['data']);
    //inverto l'array per avere il formato "aaaa-mm-gg"
    $arr_data = array_reverse($arr_data);
    //comprimo l'array in una stringa usando come collante "-"
    $new_data = implode("-",$arr_data);

    //calcolo il totale dei coperti prenotati per quella data in quel posto
    $query = "SELECT *,SUM(coperti) AS tot FROM prenotazioni WHERE data='$new_data' AND id_posto=".$_POST['id_posto'];
    $risultato = mysql_query($query) or die ("Query fallita

    ".mysql_error());
    $posto = mysql_fetch_array($risultato2);
    //se il totale dei coperti prenotati + quello ke voglio prenotare io è ancora sotto il totale dei posti disponibili
    if (($_POST['coperti'] + $pren['tot']) <= $posto['tot_posti'])
    {
    //inserisco la prenotazione
    $query = "INSERT INTO prenotazioni VALUES ('',".$_POST['id_posto'].",'$new_data',".$_POST['coperti'].")";
    $risultato = mysql_query($query) or die ("Query fallita ::::: ".mysql_error());
    }
    else
    //ho sforato con i posti, non prenotabile
    echo 'Non ci sono posti disponibili per quella data';
    ?>[/php]Credo ke sia tutto, se ho centrato il problema...
    A presto


  • User Newbie

    Grazie infinite, mi hai dato un grosso aiuto provo il tutto.
    Grazie,grazie,grazie