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

    problema timestamp e controllo date

    Ciao a tutti!
    Devo mettere un controllo nel mio sito:
    per adesso l'ho posizionato nell'header.

    Se oggi è la data di scadenza di un annuncio allora setta l'attributo 'attivo' di annuncio a False.

    Ma il problema è che mi setta a false tutti gli annunci anche se nessuno è scaduto.

    Codice PHP:
    <?php
    #CONTROLLO DEGLI ANNUNCI SCADUTI -> setto ATTIVO a FALSE
    #data di oggi
    $oggi date ("Y-m-d H:i:s");  
    #$oggi = date ("y-m-d H:i:s", mktime(date("H, i, s, m, d, Y")));
    #trovo la data di scadenza dell'annuncio 
    $result pg_query($db,"SELECT datascad_an FROM annuncio");
    #faccio scorrere l'array per tutti gli annunci inseriti
    while($array pg_fetch_row($result)){
        for (
    $x=0$x<1$x++){
            echo 
    $array[$x]."
    "
    ;
            echo 
    $oggi."
    "
    ;
            if (
    $array[$x]>$oggi){
                
    $temp $array[$x];
                
    $result2 pg_query($db,"UPDATE annuncio SET attivo = 'FALSE' WHERE datascad_an = '".$temp."'");
            }elseif (
    $array[$x]<=$oggi){
                
    $result2 pg_query($db,"UPDATE annuncio SET attivo = 'TRUE' WHERE datascad_an = '".$temp."'");
            }
        }
    }
    ?>

    Inoltre Postgres mi inserisce il timestamp nel formato:
    2011-03-28 12:05:23
    e non capisco come fare con il mktime() a trasformarlo in
    28-03-2011 12:05:23
    perché tutti i tutorial che ho trovato spiegano come fare partendo dalla data di oggi.
    Io invece ho bisogno di modificare il formato di una data già esistente!

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    for ($x=0; $x<1; $x++)


  3. #3
    Era l'unico modo che sono riuscita a trovare per fargli scorrere l'array per tutti gli annunci, ho messo $x=0 e $<1 perché ho selezionato un attributo solo

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Codice PHP:
    while($array pg_fetch_row($result)){ 
            echo 
    $array[0]."
    "

            echo 
    $oggi."
    "

            if (
    $array[0]>$oggi){ 
                
    $temp $array[0]; 
                
    $result2 pg_query($db,"UPDATE annuncio SET attivo = 'FALSE' WHERE datascad_an = '".$temp."'");
             }elseif (
    $array[0]<=$oggi){ 
                
    $result2 pg_query($db,"UPDATE annuncio SET attivo = 'TRUE' WHERE datascad_an = '".$temp."'");
             }  


  5. #5
    ok adesso è così
    Codice PHP:
    <?php
    #CONTROLLO DEGLI ANNUNCI SCADUTI -> setto ATTIVO a FALSE
    #data di oggi
    $oggi date ("Y-m-d H:i:s");  
    #$oggi = date ("y-m-d H:i:s", mktime(date("H, i, s, m, d, Y")));
    #trovo la data di scadenza dell'annuncio 
    $result pg_query($db,"SELECT datascad_an FROM annuncio");
    #faccio scorrere l'array per tutti gli annunci inseriti
    while($array pg_fetch_row($result)){
        echo 
    $array[0]."
    "
    ;
        echo 
    $oggi."
    "
    ;
        if (
    $array[0]>$oggi){
            
    $temp $array[0];
            
    $result2 pg_query($db,"UPDATE annuncio SET attivo = 'FALSE' WHERE datascad_an = '".$temp."'");
        }elseif (
    $array[0]<=$oggi){
            
    $result2 pg_query($db,"UPDATE annuncio SET attivo = 'TRUE' WHERE datascad_an = '".$temp."'");
        }
    }
    ?>
    Ma non era quello il mio problema

  6. #6
    Così continua a restarmi FALSE anche se dovrebbe essere TRUE. Per ora ho solo due annunci inseriti ma entrambi non sono scaduti

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    infatti il tuo problema non era quello, quella cosa però risaltava troppo all'occhio

    1) ma perchè la condizione non la metti nell'UPDATE direttamente??
    2) attivo è una stringa????

    Codice PHP:
    $result2 pg_query($db,"UPDATE annuncio SET attivo = 'TRUE' WHERE datascad_an >$oggi AND attivo='FALSE'" 

  8. #8
    (1) ho provato a mettere la condizione direttamente nell'update
    Codice PHP:
    <?php
    $oggi 
    date ("Y-m-d H:i:s");  
    $attivo1 FALSE;
    $attivo2 TRUE;
    $result1 pg_query($db,"UPDATE annuncio SET attivo = '".$attivo1."' WHERE datascad_an > '".$oggi."'");
    $result2 pg_query($db,"UPDATE annuncio SET attivo = '".$attivo2."' WHERE datascad_an <= '".$oggi."'");
    ?>
    (2) attivo è un booleano

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    se è boolenao togli gli apici, anche le date senza apici

    Codice PHP:
    $result1 pg_query($db,"UPDATE annuncio SET attivo = FALSE WHERE datascad_an > ".$oggi." AND attivo = TRUE");
     
    $result2 pg_query($db,"UPDATE annuncio SET attivo = TRUE WHERE datascad_an <= ".$oggi." AND attivo = FALSE"); 

  10. #10
    Non cambia niente.. continua a darmi false

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.