Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    verifica tra un intervallo di date

    Salve.
    Ho una tabella con 2 campi timestamp dove vado a controllare se una data coincide nell'intervallo dei 2 campi:
    Codice PHP:
    "SELECT * FROM tabella WHERE IDUtente='$idutente' AND DataInizio>='$data' AND DataFine<='$data'"
    è giusto così?

    perchè non mi da errore ma non esegue la verifica visto che mettendo un dato all'interno della tabella non mi restituisce nulla.

  2. #2
    Per segliere un intervallo andrebbe pure meglio il beetwin

    ... and '$data' between DataInizio and DataFine

    comunque e' la stessa cosa, avresti solo una variabile (la stessa) da risolvere una volta invece di due, non da dimenticare che il timestamp e' di fatto un datetime e si porta dietro anche ore:min:sec e quindi la stringa da comparare deve essere coerente.

    Si suppone ovviamente che il contenuto del campo e della variabile sia in formato ansi yyyy-mm-dd hh:mm:ss

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    si il contenuto è di tipo ansy yyyy-mm-dd
    Ho cambiato i campi in date ed ho fatto questo ed ho usato il between:

    Codice PHP:
    $sqlshop="SELECT IDFile, IDUtente FROM shopping WHERE IDFile='$RecFiles[IDFile]' AND shopping.IDUtente='$_COOKIE[IDUtente_Network]' OR ";
    $sqlshop.="SELECT IDUtente, DataInizioAbbonamento,DataFineAbbonamento FROM abbonamenti ";
    $sqlshop.="WHERE IDUtente='$_COOKIE[IDUtente_Network]' AND '$RecFiles[DataInsertion]' BETWEEN DataInizioAbbonamento AND DataFineAbbonamento";
    $QueryVer=mysql_query($sqlshop); 
    In poche parole devo controllare se trovo corrispondenza nella tabella shopping o nella tabella abbonamenti.
    Ma mi da errore:
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

  4. #4
    ho fatto anche questo:
    Codice PHP:
    $sqlshop="SELECT IDFile, shopping.IDUtente, abbonamenti.IDUtente, DataInizioAbbonamento, DataFineAbbonamento ";
    $sqlshop.="FROM shopping, abbonamenti WHERE ";
    $sqlshop.="shopping.IDFile='$RecFiles[IDFile]' AND IDUtente='$_COOKIE[IDUtente_Network]' OR ";
    $sqlshop.="abbonamenti.IDUtente='$_COOKIE[IDUtente_Network]' AND DataInizioAbbonamento>='$RecFiles[DataInsertion]' AND DataFineAbbonamento<='$RecFiles[DataInsertion]'";
    $QueryVer=mysql_query($sqlshop); 
    ma anche qui il solito errore.

  5. #5
    nel primo caso non puoi certamente fare due query unite da un OR

    nel secondo devi racchiudere le OR tra parentesi per suddividerle dalle AND

    poi per evidenziare di quale errore si tratta:

    $QueryVer=mysql_query($sqlshop) OR die(mysql_error());

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    quindi dovrei fare in questo modo:
    Codice PHP:
    $sqlshop="SELECT IDFile, shopping.IDUtente, abbonamenti.IDUtente, DataInizioAbbonamento, DataFineAbbonamento "
    $sqlshop.="FROM shopping, abbonamenti WHERE "
    $sqlshop.="(shopping.IDFile='$RecFiles[IDFile]' AND IDUtente='$_COOKIE[IDUtente_Network])' OR "
    $sqlshop.="(abbonamenti.IDUtente='$_COOKIE[IDUtente_Network]' AND DataInizioAbbonamento>='$RecFiles[DataInsertion]' AND DataFineAbbonamento<='$RecFiles[DataInsertion]')"
    $QueryVer=mysql_query($sqlshop); 
    così?

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.