Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Ritardo pubblicazione

  1. #1

    Ritardo pubblicazione

    codice:
    <?
    //formatto data e ora attuale in datetime
    $data_ora = date("Y-m-d")." ".date("H:i:s");
    $query = "SELECT ID,Titolo,Descrizione,Immagine,Alt,Importante,Posticipata,Inserito FROM notizie WHERE Importante = 'SI' ORDER BY Inserito DESC LIMIT 0,6";
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result)) {
    //questa è la data del database (sempre datatime)
    $pubblicazione = $row["Inserito"];
    $posticipata = $row["Posticipata"];
    //se la data attuale è maggiore o uguale a quella del database e se l'articolo è posticipato
    if ($data_ora>=$pubblicazione AND $posticipata=="SI") {
    echo "<a href=articolo.php?ID=".$row["ID"].">".$row["Titolo"]."</a>
    ";
    }
    //se l'articolo non è posticipato
    if ($posticipata!="SI") {
    echo "<a href=articolo.php?ID=".$row["ID"].">".$row["Titolo"]."</a>
    ";
    }
    }
    ?>
    Perché non effettua il controllo e pubblica tutto?

  2. #2
    prova a stampare $row["Inserito"]; prima .. e vedi com'è

  3. #3
    Lo stampa tranquilamente.

  4. #4
    codice:
    if ($data_ora>=$pubblicazione AND $posticipata=="SI") {
    questa if puo' dare risultati inattesi. Per PHP non e' una data, ma una stringa.

    Dovresti usare direttamente nella query questa condizione.
    codice:
    $data_ora = date("Y-m-d H:i:s");
    
    $query = "SELECT  ID, Titolo, Descrizione, Immagine, Alt, Importante, Posticipata, Inserito
              FROM notizie
              WHERE Importante = 'SI'
              AND  Inserito <= '$data_ora'
              ORDER BY Inserito DESC
              LIMIT 0,6";
    Oppure trasformare tutto in UNIX TIMESTAMP se vuoi/devi utilizzare la if.

    Nella query al posto di $data_ora potresti mettere direttamente la funz. NOW().


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

  5. #5
    Non posso fare così perché devo comunque pubblicare 6 articoli tra posticipati e non. Con timestamp come potrei fare?

  6. #6
    Estrai la data in formato timestamp....

    codice:
    $data_ora = time(); 
    
    $query = "SELECT  ID, Titolo, Descrizione, Immagine, Alt, Importante,
              Posticipata, UNIX_TIMESTAMP(Inserito) as Inserito
              FROM notizie
              WHERE Importante = 'SI'
              ORDER BY Inserito DESC
              LIMIT 0,6";


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

  7. #7
    Niente da fare.

  8. #8
    codice:
    $timestamp_oggi = mktime(0, 0, 0, 0, 0, date("m"), date("d"), date("Y"), date("H"), date("i"));
    $time_stamp_pubblicazione = mktime(0,0,0,0,0,getMonth($pubblicazione),getDay($pubblicazione),getYear($pubblicazione),getHour($pubblicazione),getMinutes($pubblicazione));
    Perché non va così? Sicuramente ho sbagliato.

  9. #9
    non ti va bene cosa ti ho postato????

    data_ora = time();

    eccc....

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

  10. #10
    $data_ora la scriveva bene ma la data del database no.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.