Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Funzione di verifica date.

    Buon giorno, anche oggi chiedo il vostro aiuto...
    Ho bisogno di creare una funzione che dato un certo id e due date, una iniziale e una finale, verifichi se in tale id risulta già una data in quel range.

    Es. record esistente nel db
    id = Mario
    data1 = 2010-06-14
    data2 = 2010-06-26

    Es. record nuovo
    id=Mario
    data1 = 2010-06-24
    data2 = 2010-07-12
    La funzione mi deve verificare in fase di inserimento del nuovo record se Mario è disponibile nel nuovo range. In questo caso mi deve dire che risulta già impegnato.

    Grazie per l'aiuto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Supponendo di avere le due nuove date nelle variabili $data1 e $data2, potresti fare una select di questo tipo:
    Codice PHP:
    $query "SELECT * FROM tabella WHERE id='Mario' AND (" $data1 " >= data1 AND " $data1 <= " . $data2) OR (" $data2 " >= data1 AND " $data2 <= " . $data2)"
    Se la query trova qualcosa allora Mario è già occupato nel nuovo intervallo di tempo.

  3. #3
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304

    Re: Funzione di verifica date.

    Originariamente inviato da testapazza
    Buon giorno, anche oggi chiedo il vostro aiuto...
    Ho bisogno di creare una funzione che dato un certo id e due date, una iniziale e una finale, verifichi se in tale id risulta già una data in quel range.

    Es. record esistente nel db
    id = Mario
    data1 = 2010-06-14
    data2 = 2010-06-26

    Es. record nuovo
    id=Mario
    data1 = 2010-06-24
    data2 = 2010-07-12
    La funzione mi deve verificare in fase di inserimento del nuovo record se Mario è disponibile nel nuovo range. In questo caso mi deve dire che risulta già impegnato.

    Grazie per l'aiuto.
    Una volta che hai estratto le due date per l'id mario dal db fai così:

    Codice PHP:
    <?php
    //sto chiamando $data1_db e $data2_db quelle date estratte dal db
    if($data1 <= $data2_db && $data1 >= $data1_db || $data2 <= $data2_db && $data2 >= $data1_db )
      {echo(
    "Mario è occupato");}
    ?>

  4. #4
    Grazie ad entrambi, provo e vi faccio sapere.

  5. #5
    Ragazzi scusate, questo è lo script...

    codice:
    <?php
    $editFormAction = $_SERVER['PHP_SELF']; 
    if (isset($_SERVER['QUERY_STRING'])) {   $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); 
    } 
     if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) 
    {   
    $insertSQL = sprintf("INSERT INTO calendario_lavori (id_mezzi, dal, al) VALUES (%s, %s, %s)",
    GetSQLValueString($_POST['id'], "int"),
    GetSQLValueString($_POST['dal'], "date"),
    GetSQLValueString($_POST['al'], "date"));    
    mysql_select_db($database_connessione, $connessione);   
    $Result1 = mysql_query($insertSQL, $connessione) or die(mysql_error()); 
    }
    ?>
    ... 
    <body> 
    <form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>">
    <label>ID     <input type="text" name="id" id="id" />   </label>   
    <label>Dal     <input type="text" name="dal" id="dal" />   </label>   
    <label>al     <input type="text" name="al" id="al" />   </label>   
    <label>Invia     <input type="submit" name="invia" id="invia" value="Invia" />   </label>
    <input type="hidden" name="MM_insert" value="form1" /> </form>
    Ma non so come inserire le righe che mi avete postato.
    Vi chiedo ancora un aiutino...

    Grazie.

  6. #6
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    Allora fammi capire perchè c'è questo campo nascosto:
    Codice PHP:
    <input type="hidden" name="MM_insert" value="form1" /> 
    e poi dimmi cosa vuoi fare nel caso in cui il mezzo (che prima era Mario) fosse occupato nel range di date inserito. Da come è strutturuto lo script mi pare di capire che se "mario" è occupato non vuoi inserirlo nella tabella calendario_lavori, pero' dammi una conferma di questo.

  7. #7
    nel caso in cui id_mezzi fosse occupato vorrei mi venisse un messaggio tipo

    "date non disponibili verificare nella pagina di visualizzazione."
    e mi annulli l'operazione.

    riuardo al campo nascosto non c'entra niente... deve essere finito li per sbaglio

  8. #8
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    Originariamente inviato da testapazza
    nel caso in cui id_mezzi fosse occupato vorrei mi venisse un messaggio tipo

    "date non disponibili verificare nella pagina di visualizzazione."
    e mi annulli l'operazione.

    riuardo al campo nascosto non c'entra niente... deve essere finito li per sbaglio
    beh non sembra finito li per sbaglio perchè in base a quello viene eseguita la query di inserzione che ancora non capisco a cosa serva se tu devi controllare (SELECT) e non inserire (INSERT). Quindi dimmi quel form serve per inserire i dati nel database o serve per controllare? E se serve per controllare come inserisci i dati nel database?

  9. #9
    quel form serve ad inserire, ma contemporaneamente deve effettuare un controllo per verificare la disponibilità, vista la mia inesperianza a riguardo nella programmazione, vorrei capire come poter fare.

  10. #10
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    Originariamente inviato da testapazza
    quel form serve ad inserire, ma contemporaneamente deve effettuare un controllo per verificare la disponibilità, vista la mia inesperianza a riguardo nella programmazione, vorrei capire come poter fare.
    Vista la tua inesperienza allora quel codice molto probabilmente non è farina del tuo sacco, io ho buttato giu questo, controllalo sicuramente ci saranno errori di sintassi e forse pure concettuali, perche anche io sono alle prime armi e mi esercito aiutando la gente del forum

    Codice PHP:
    <?php

    $editFormAction 
    $_SERVER['PHP_SELF']; 
    $id=$_POST['id'];
    $dal=$_POST['dal'];
    $al=$_POST['al'];  
    mysql_select_db($database_connessione$connessione);   
    ?>
    <body> 
    <?php if(!isset($id) && !isset($al) && !isset($dal)){// se non sono presenti mostrami il form 
    ?>
    <form id="form1" name="form1" method="POST" action="<?php echo $editFormAction?>">
    <label>ID     <input type="text" name="id" id="id" />   </label>   
    <label>Dal     <input type="text" name="dal" id="dal" />   </label>   
    <label>al     <input type="text" name="al" id="al" />   </label>   
    <label>Invia     <input type="submit" name="invia" id="invia" value="Invia" />   </label>
     </form>
    <?php 
    }
    else { 
    // se hai inserito nel form una ricerca, verifica se il mezzo è occupato e se non lo è inserisce i dati nel db
    $query "SELECT * FROM calendario_lavori WHERE id_mezzi='$id' AND (" $dal " >= dal AND " $dal <= " . $al) OR (" $al " >= dal AND " $al <= " . $al)";
    $results mysql_query($query) or die (mysql_error()); 
    if(
    $result) echo("$di è occupato dal:$dal al: $al");
       else{
    $query_ins="INSERT INTO calendario_lavori (id_mezzi, dal, al) VALUES ($id$dal$al)";
             
    $results_ins mysql_query($query_ins) or die (mysql_error()); }
             
      }
    ?>
    </body>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.