Aggiornare pagina quando c'è un nuovo messaggio

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
Prova a vedere se la query va a buon fine..mettila in phpmyadmin.

Esce questo

Schermata 07-2456484 alle 17.07.59.png
 
Veramente li dentro devi mettere solo il codice SQL quindi quello che vedi in verde (virgolette escluse).
 
Ma il db contiene dei messaggi? Se non c'è alcun messaggio non darà valori di data ovviamente.
 
In che formato è il campo dataGmtS?

PHP:
//Mette nel DB la data formattata come compare a video nei Successi
$giorno=array('domenica','lunedì','martedì','mercoledì','giovedì','venerdì','sabato'); 
$mese=array('gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
$dataGmtS=$giorno[date('w')].' '.date('d').' '.$mese[date('m')-1].' '.date('Y - H:i:s \G\M\T P');

Questo

Schermata 07-2456484 alle 17.43.16.png
 
Prova con:
Codice:
SELECT dataGmtS
FROM successi
E vediamo se da risultati e quindi se il problema è nell'utilizzo di max().
 
Nel db stampa giusto, forse non estrae la data

Schermata 07-2456484 alle 18.35.57.png
 
Ultima modifica:
Hai utilizzato la stessa identica query di prima e ora da risultati.
A questo punto prova il codice che ti ho dato.
 
Hai utilizzato la stessa identica query di prima e ora da risultati.
A questo punto prova il codice che ti ho dato.

Il codice è questo, ma come ti dicevo non aggiorna la pagina, se invio un messaggio

PHP:
//Mette nel DB la data formattata come compare a video nei Successi
$giorno=array('domenica','lunedì','martedì','mercoledì','giovedì','venerdì','sabato'); 
$mese=array('gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
$dataGmtS=$giorno[date('w')].' '.date('d').' '.$mese[date('m')-1].' '.date('Y - H:i:s \G\M\T P');
 
function ultimo_aggiornamento(){  
    $result=mysql_query("SELECT MAX(dataGmtS) as data FROM successi");   
    $value=mysql_fetch_array($result);    
    $file=glob('*'); //legge tutti i file  
    $file = array_filter($file, "is_file"); //verifica se sono file  
    $mod_time = array_map('filemtime', $file); //legge il tempo   
    return $value['data'] > max($mod_time) ? $value['data'] : max($mod_time);   
}  

<?php echo "Ultimo aggiornamento: ".date("d.m.Y",ultimo_aggiornamento()); ?>
 
Ultima modifica:
Risolto

Ho dovuto mettere data_localeS

PHP:
function ultimo_aggiornamento(){  
    $result=mysql_query("SELECT MAX(data_localeS) as data FROM successi");    
    $value=mysql_fetch_array($result);    
    $file=glob('*'); //legge tutti i file  
    $file = array_filter($file, "is_file"); //verifica se sono file  
    $mod_time = array_map('filemtime', $file); //legge il tempo   
    return $value['data'] > max($mod_time) ? $value['data'] : max($mod_time);

Schermata 07-2456485 alle 10.00.49.png
 
Già che ci siamo, vorrei aggiungere anche se qualcuno vota il sondaggio

PHP:
// Aggiorna la data in tutte le pagine anche se ne modifichi una e anche se viene scritto un successo
function ultimo_aggiornamento(){  
    $result=mysql_query("SELECT MAX(data_localeS) as data FROM successi");    
    $value=mysql_fetch_array($result);    
    $file=glob('*'); //legge tutti i file  
    $file = array_filter($file, "is_file"); //verifica se sono file  
    $mod_time = array_map('filemtime', $file); //legge il tempo   
    return $value['data'] > max($mod_time) ? $value['data'] : max($mod_time);   
}

Parte iniziale del sondaggio

PHP:
<?php
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q); 
$riga=mysql_fetch_assoc($risultato); 
$tot=0;//metto il totale a 0 
foreach($riga as $chiave => $valore) { 
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    } 
} 
...

Schermata 07-2456486 alle 11.19.23.png
 
Si ovvio altrimenti non trova il massimo se è in quel formato strano.

Comunque dovresti fare la stessa identica cosa facendo un controllo sulla tabella dove hai inserito i voti.
 
Si ovvio altrimenti non trova il massimo se è in quel formato strano.

Comunque dovresti fare la stessa identica cosa facendo un controllo sulla tabella dove hai inserito i voti.

Qui il codice è un po diverso, ho creato un record per la data

Schermata 07-2456485 alle 13.44.24.png

Ma non riesco a fargli inserire la data numerica

non so dove mettere il codice
PHP:
$data_localeS = time(); //Stampa nel db la data numerica es. 1360585588

PHP:
<?php
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q); 
$riga=mysql_fetch_assoc($risultato); 
$tot=0;//metto il totale a 0 
foreach($riga as $chiave => $valore) { 
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    } 
} 
if($tot >0) {  
     $gx=$giornali; // Stampa il numero di votanti
     $g= $giornali/$tot*100; $giornali_pos=(int)$g-100; 
     $giornali=number_format($g, 1, ',',''); //questo mette il decimale 
  if($giornali >=100){$giornali=(int)$giornali;}  //questo toglie il decimale a 100%
     $dx=$depliant;
     $d= $depliant/$tot*100; $depliant_pos=(int)$d-100; 
     $depliant=number_format($d, 1, ',',''); 
  if($depliant >=100){$depliant=(int)$depliant;} 
  	 $tx=$televisione;    
     $t= $televisione/$tot*100; $televisione_pos=(int)$t-100; 
     $televisione=number_format($t, 1, ',',''); 
  if($televisione >=100){$televisione=(int)$televisione;}  
  	 $wx=$web_banner;   
     $w= $web_banner/$tot*100; $web_banner_pos=(int)$w-100; 
     $web_banner=number_format($w, 1, ',','');  
  if($web_banner >=100){$web_banner=(int)$web_banner;}  
  	 $cx=$casualmente;  
     $c= $casualmente/$tot*100; $casualmente_pos=(int)$c-100; 
     $casualmente=number_format($c, 1, ',',''); 
  if($casualmente >=100){$casualmente=(int)$casualmente;}  
  	 $mx=$motori_di_ricerca;   
     $m= $motori_di_ricerca/$tot*100; $motori_di_ricerca_pos=(int)$m-100; 
     $motori_di_ricerca=number_format($m, 1, ',','');  
  if($motori_di_ricerca >=100){$motori_di_ricerca=(int)$motori_di_ricerca;}  
  	 $ax=$amici_o_conoscenti;    
     $a= $amici_o_conoscenti/$tot*100; $amici_o_conoscenti_pos=(int)$a-100;
     $amici_o_conoscenti=number_format($a, 1, ',',''); 
  if($amici_o_conoscenti >=100){$amici_o_conoscenti=(int)$amici_o_conoscenti;}     
}
else {
     $giornali= 0; $giornali_pos=-100;
     $depliant= 0; $depliant_pos=-100;
     $televisione= 0; $televisione_pos=-100;
     $web_banner= 0; $web_banner_pos=-100;
     $casualmente= 0; $casualmente_pos=-100;
     $motori_di_ricerca= 0; $motori_di_ricerca_pos=-100;
     $amici_o_conoscenti= 0; $amici_o_conoscenti_pos=-100;
}
if(isset($_POST['puls_invio'])) { 
if(!isset($_COOKIE['votato'])) { //Setta il cookie (2/4), il primo si trova in connessione.php
if(isset($_POST['voto'])) {
    $voto=mysql_real_escape_string($_POST['voto']);
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1"; 
    if(mysql_query($q)) { 
    echo "<div style=\"background-color:#ffff00; border-radius:10px;  width: auto; height: 110px;\"><img src=\"http://localhost:8888/MIEI%20SITI/Alveo/immagini/ok.png\" width=\"50\" height=\"50\" alt=\"Ok\" title=\"Ok\" /><br><div style=\"margin-top:10px; margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie, il tuo voto è stato inserito!</div></div><br>"; 
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    setcookie("votato", "si", time()+5*365*24*60*60); //Dura 5 anni, setta il cookie (3/4)
...
 
Ci sono diversi modi di formattare il campo per inserire una data...puoi scegliere un formato DATE o INT inserendo il timestamp o date/time.
 

Discussioni simili