Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    La query e' anche giusta, ma non viene mai eseguita.

    http://it2.php.net/manual/en/function.mysql-query.php

  2. #12
    Ah il result !
    Si scusate, era pure una mia dimenticanza, nella fretta di risolvere il problema delle date mi era completamente passata di mente !!

    Aggiungo e modifico, caso mai funzionasse ..

  3. #13
    In effetti non mi visualizzava niente : ho provato a fare cosi inserendo un echo per verificare:

    Codice PHP:
    $apertura "SELECT dataapertura FROM alloggi WHERE id_hotel='$id_hotel'";
    $result mysql_query($apertura,$db_conn) or die(mysql_error());
    $rows mysql_num_rows($result);
    while(
    $row mysql_fetch_assoc($result)){
    echo 
    "$row[dataapertura]";

    Ed ora il valore data apertura lo visualizzo.
    Ora, se ho ben capito, invece di fare l'echo ( che era messo li per esempio ) devo :

    assegnare $dataapertura = $row[apertura] ; cosi assegno il valore alla variabile.

    confrontarla con la data che prendo ( che e' gia in formato anno, mese, giorno ).

    Posso provare a fare come mi ha detto cubalibre ? In effetti hanno lo stesso identico formato ... data arrivo infatti e' gia messa come :

    codice:
    $dataarrivo = (date("$annoarrivo-$mesearrivo-$giornoarrivo"));

  4. #14
    Se ti aspetti un risultato solo dalla query non ti serve il ciclo while, se vuoi fare il confronto come ti ho suggerito io date() non ti serve a nulla

  5. #15
    Si puoi confrontarle anche in formato stringa "yyyy-mm-dd", ma prima di tutto leva quel date() che non serve a niente.
    Accertati pero' che il formato sia veramente yyyy-mm-dd con gli zeri se i mesi o i giorni sono minori di 10: se hai stringhe tipo "2008-6-2", allora questo semplice controllo su stringhe non funziona (motivo per cui e' sempre meglio confrontare i dati nel loro vero formato).

  6. #16
    Funziona finalmente, ringrazio tutti per la pazienza.
    Sicuramente ho messo qualche cosa in piu, ma devo consegnare tutto questo progetto venerdi mattina, e sto andando un po' a tirar via...

    Intanto posto il codice completo ( praticamente, in un form di prenotazioni, vede se l'intervallo scelto e' compreso tra l'intervallo in cui la struttura e' aperta ) : se trovate qualche cosa da eliminare e me lo dite mi fate un grosso favore, altrimenti avete gia fatto tanto cosi

    Codice PHP:
    <?php
    include ("config.php");
    session_start(); 

    $id_hotel = ($_POST['id_hotel']);
    $giornoarrivo $_POST['giornoarrivo'];
    $mesearrivo $_POST['mesearrivo'];
    $annoarrivo $_POST['annoarrivo'];
    $giornopartenza $_POST['giornopartenza'];
    $mesepartenza $_POST['mesepartenza'];
    $annopartenza $_POST['annopartenza'];
    $numeropersone $_POST['numeropersone'];
    $richiedente_id $_POST['richiedente_id'];
    $dataarrivo = ("$annoarrivo-$mesearrivo-$giornoarrivo"); 
    $datapartenza = ("$annopartenza-$mesepartenza-$giornopartenza"); 

    //Recupero la data di apertura e chiusura dell'alloggio

    $aperturachiusura "SELECT dataapertura,datachiusura FROM alloggi WHERE id_hotel='$id_hotel'";
    $result mysql_query($aperturachiusura,$db_conn) or die(mysql_error());
    $rows mysql_num_rows($result);

    while(
    $row mysql_fetch_assoc($result)) {
    $dataapertura "$row[dataapertura]";
    $datachiusura "$row[datachiusura]";
    }

    //Se la data di arrivo e' precedente a quella di apertura segnalo l'errore

    if ($dataarrivo $dataapertura || $dataarrivo $datachiusura || $datapartenza $dataapertura || $datapartenza $datachiusura) {
    $_SESSION['id_hotel'] = $id_hotel;
    header ("location: ../conferma_prenotazione.php?er=3");
    exit;
    }


    // Se i dati sono mancanti, indirizzo l'utente e stampo l'errore

     
    if ($numeropersone=='' || $giornoarrivo =='' || $annoarrivo =='' || $mesearrivo ==''|| $giornopartenza=='' || $mesepartenza =='' || $annopartenza =='') { 
     
    $_SESSION['id_hotel'] = $id_hotel;
     
    header ("location: ../conferma_prenotazione.php?er=1");
     exit;
     }

     
    // Se la data di arrivo e' dopo la data di partenza posto l'errore

    if ($dataarrivo $datapartenza) {
    $_SESSION['id_hotel'] = $id_hotel;
    header ("location: ../conferma_prenotazione.php?er=2");
    exit;
    }


    // Query inserimento alloggi

    $query "INSERT INTO prenotazioni (richiedente_id, struttura_id, dataarrivo, datapartenza, personetotali) VALUES ('$richiedente_id', '$id_hotel', '$annoarrivo-$mesearrivo-$giornoarrivo','$annopartenza-$mesepartenza-$giornopartenza', '$numeropersone')";
    $result mysql_query($query$db_conn) or die ("Errore connessione:" mysql_error());
    mysql_close();
    $_SESSION['id_hotel'] = $id_hotel;
    header ("location: ../conferma_prenotazione.php?check=ok");

    ?>

  7. #17
    Originariamente inviato da k.b
    Accertati pero' che il formato sia veramente yyyy-mm-dd con gli zeri se i mesi o i giorni sono minori di 10: se hai stringhe tipo "2008-6-2", allora questo semplice controllo su stringhe non funziona (motivo per cui e' sempre meglio confrontare i dati nel loro vero formato).

    Si, infatti avevo scelto di far inserire i valori con dei menu a tendina per evitare questo problema, dovrebbe andare cosi !!

  8. #18
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    ci può essere un caso in cui la data di arrivo sia successiva alla chiusura, un'altra dove la data di partenza sia successiva alla chiusura ed un ultimo in cui la data di arrivo è precedente alla chiusura, le devi aggiungere.
    P.S:ma qui a che ti servono le parentesi?
    Codice PHP:
    $dataarrivo = ("$annoarrivo-$mesearrivo-$giornoarrivo");
    $datapartenza = ("$annopartenza-$mesepartenza-$giornopartenza"); 

  9. #19
    Originariamente inviato da dararag
    ci può essere un caso in cui la data di arrivo sia successiva alla chiusura, un'altra dove la data di partenza sia successiva alla chiusura ed un ultimo in cui la data di arrivo è precedente alla chiusura, le devi aggiungere.
    I primi 2 casi li ha già inseriti, il terzo non mi sembra un errore.

    @ezechiele: Secondo me la logica più adatta è questa
    Codice PHP:
    if($dataarrivo >= $datapartenza)
    {
       
    // Errore, la data di arrivo è successiva a quella di partenza (o lo stesso giorno)
    }

    if(
    $dataarrivo $dataapertura || $datapartenza $datachiusura)
    {
       
    // Errore, arrivo o partenza fuori dal periodo di apertura

    Con questi semplici controlli dovresti escludere tutte le possibilità

  10. #20
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    scusa, data di arrivo PRECEDENTE all'apertura

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.