Aggiornare pagina quando c'è un nuovo messaggio

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Pubblica la query che utilizzi per aggiungere un altro voto alla tabella.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Non è molto chiaro come viene fatto il sondaggio ma l'unica query di 'scrittura' che vedo in quel codice è questa:
PHP:
 $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1";
Dovresti postare tutto il contenuto di
PHP:
if(isset($_POST['puls_invio'])) {
//...
}
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Non è molto chiaro come viene fatto il sondaggio ma l'unica query di 'scrittura' che vedo in quel codice è questa:
PHP:
 $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1";
Dovresti postare tutto il contenuto di
PHP:
if(isset($_POST['puls_invio'])) {
//...
}

Se serve poi posto la parte, però in un qualche modo sono riuscito a far stampare a video non nel db la data.

Forse la soluzione potrebbe essere riuscire a far stampare nel db la data

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) { 

     $data_localeS=time(); 
     
     $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%

...

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 

<div class="fra">
<?php echo $data_localeS;?>
<br>
<br>
<input type="radio" name="voto" value="giornali"> Giornali <span class="votanti">(<?php echo $gx;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $giornali_pos;?>px"></div><div class="percentuale"><?php echo $giornali;?>%</div>
<br>

...

Schermata 07-2456486 alle 21.26.20.png
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Basta aggiornare anche quel campo quando fai la query UPDATE inserendo il valore della nuova data. (per avere quel valore dovresti fare nello stesso modo così come prendevi quello per l'altra funzione).
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Forse ci sono riuscito, dimmi se va bene, così però tutte le volte crea un record nel db

PHP:
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 "Grazie, il tuo voto è stato inserito!<br>"; 
    echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    setcookie("votato", "si", time()+5*365*24*60*60); //Dura 5 anni, setta il cookie (3/4)
 
   $q=mysql_query("INSERT INTO sondaggio (data_localeS) 
                           VALUES('$data_localeS')"); 
                          
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-utf-8\r\n";
$headers .= "X-Mailer: PHP\n"; 
$headers .= "From:Alberti.Alveo<[email protected]>\r\n"; 

//Invio e-mail di avviso a me
$miaemail = "Me<[email protected]>"; 
$soggetto = "Qualcuno ha fatto il sondaggio";  //Le mail vanno formattate con HTML 
$corpo_messaggio ="<html>
<head>
</head>
<body>
<p style=\"font-family:arial,verdana;font-size:17px;color:#000080;font-weight:bold;\">Un visitatore ha votato il sondaggio</p>
<span style=\"color:#008000;\">$voto</span>
<br>
<br>     
<p style=\"font-family:arial,verdana;font-size:11px;color:#000080;\">$dataGmtS
</p>
<br>
<br>
<br>
<br>
</body>
</html>";  
//Invio della mail 
mail ($miaemail,$soggetto,$corpo_messaggio,$headers);  
    }
  } 
else { 
     echo "Devi selezionare una risposta!";  
     echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
   }
}
else { 
    echo "Hai già votato, grazie!";   
    echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; 
   } 
} 
?>

...
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Sei sicuro che questa query funzioni?
PHP:
<?php
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1"; 
?>
Io la cambierei così:
PHP:
<?php
    $q="UPDATE sondaggio SET voto = $voto + 1, data_localeS = $data_localeS  WHERE id=1"; 
?>
Così potresti anche eliminare la query che hai aggiunto.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Sei sicuro che questa query funzioni?
PHP:
<?php
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1"; 
?>
Io la cambierei così:
PHP:
<?php
    $q="UPDATE sondaggio SET voto = $voto + 1, data_localeS = $data_localeS  WHERE id=1"; 
?>
Così potresti anche eliminare la query che hai aggiunto.

Qui hai dimenticato $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1";

sembra funzionare
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Veramente l'ho tolto apposta. Aumenta il voto sul db mettendo il $?
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Veramente l'ho tolto apposta. Aumenta il voto sul db mettendo il $?

Non aumenta i valori senza $...ho visto che crea un problema il tuo codice, non mostra più le barre di scorrimento, quelle azzurre, però aggiorna i valori
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Devi vedere se aggiorna il valore nel db. Altrimenti è inutile l'update (che serve proprio a quello).
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Devi vedere se aggiorna il valore nel db. Altrimenti è inutile l'update (che serve proprio a quello).

Si, aggiorna valori e data aggiornamento
PHP:
$q="UPDATE sondaggio SET $voto = $voto + 1, data_localeS = $data_localeS  WHERE id=1";

Però come ti dicevo fa sparire le barre azzurre
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Incolla il codice completo qui o linka su pastebin.

Cosìè pastebin?

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) { 
     $data_localeS=time(); 
     $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, data_localeS = $data_localeS  WHERE id=1";   
    if(mysql_query($q)) { 
    echo "Grazie, il tuo voto è stato inserito!<br>"; 
    echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    setcookie("votato", "si", time()+5*365*24*60*60); //Dura 5 anni, setta il cookie (3/4)
                          
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-utf-8\r\n";
$headers .= "X-Mailer: PHP\n"; 
$headers .= "From:Alberti.Alveo<[email protected]>\r\n"; 

//Invio e-mail di avviso a me
$miaemail = "Me<[email protected]>"; 
$soggetto = "Qualcuno ha fatto il sondaggio";  //Le mail vanno formattate con HTML 
$corpo_messaggio ="<html>
<head>
</head>
<body>
<p style=\"font-family:arial,verdana;font-size:17px;color:#000080;font-weight:bold;\">Un visitatore ha votato il sondaggio</p>
<span style=\"font-family:arial; font-size:16px; color:#008000;\">$voto</span>
<br>
<br>     
<p style=\"font-family:arial,verdana;font-size:11px;color:#000080;\">$dataGmtS
</p>
<br>
<br>
<br>
<br>
</body>
</html>";  
//Invio della mail 
mail ($miaemail,$soggetto,$corpo_messaggio,$headers);  
    }
  } 
else { 
     echo "Devi selezionare una risposta!<br>";  
     echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
   }
}
else { 
    echo "Hai già votato, grazie!<br>";   
    echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; 
   } 
} 
?>
<p style="font-size:13px; text-align:center; margin-top:-5px; margin-bottom:30px; color:#e40202;">Come hai conosciuto i prodotti Akuna?</p>

<div style="margin-top:-10px; margin-left:3px; text-align:left;">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 

<div class="fra">
<input type="radio" name="voto" value="giornali"> Giornali <span class="votanti">(<?php echo $gx;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $giornali_pos;?>px"></div><div class="percentuale"><?php echo $giornali;?>%</div>
<br>
<input  type="radio" name="voto" value="depliant"> Depliant <span class="votanti">(<?php echo $dx;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $depliant_pos;?>px"></div><div class="percentuale"><?php echo $depliant;?>%</div>
<br>
<input type="radio" name="voto" value="televisione"> Televisione <span class="votanti">(<?php echo $tx;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $televisione_pos;?>px"></div><div class="percentuale"><?php echo $televisione;?>%</div>
<br>
<input type="radio" name="voto" value="web_banner"> Web banner <span class="votanti">(<?php echo $wx;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $web_banner_pos;?>px"></div><div class="percentuale"><?php echo $web_banner;?>%</div>
<br>
<input type="radio" name="voto" value="casualmente"> Casualmente <span class="votanti">(<?php echo $cx;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $casualmente_pos;?>px"></div><div class="percentuale"><?php echo $casualmente;?>%</div>
<br>
<input type="radio" name="voto" value="motori_di_ricerca"> Motori di ricerca <span class="votanti">(<?php echo $mx;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $motori_di_ricerca_pos;?>px"></div><div class="percentuale"><?php echo $motori_di_ricerca;?>%</div>
<br>
<input type="radio" name="voto" value="amici_o_conoscenti"> Amici o conoscenti <span class="votanti">(<?php echo $ax;?>)</span>
<br>
<div class="a" style="background-position:<?php echo $amici_o_conoscenti_pos;?>px"></div><div class="percentuale"><?php echo $amici_o_conoscenti;?>%</div>

<div style="margin-top:30px; text-align:center;"><input type="submit" name="puls_invio" value="Vota" class="manina-guest"></div>
</div><!-- fra -->
</form>
</div><!-- div style -->
<?php 
ob_end_flush();//Questo va messo alla penultima riga, setta il cookie (4/4)
?>
 
Ultima modifica:

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho fatto delle aggiunte e sembra funzionare tutto correttamente e aggiorna anche la data nel sito, l'unica cosa che ci sarebbe da correggere è che nel db ad ogni voto crea un record solo con la data aggiornata (gli altri campi invece rimangono a zero perché si aggiornano solo nel primo record)


Ho definito le variabili sennò dava errore
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 
    } 
} 
// Definisce le variabili
$gx=""; 
$dx=""; 
$tx=""; 
$wx=""; 
$cx=""; 
$mx=""; 
$ax="";      

if($tot >0) { 
     $data_localeS=time(); 
     $gx=$giornali; // Stampa il numero di votanti
     $g= $giornali/$tot*100; $giornali_pos=(int)$g-100; // Mette la percentuale
     $giornali=number_format($g, 1, ',',''); // Mette il decimale 
...

Ho aggiunto una SELECT
PHP:
...

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 "Grazie, il tuo voto è stato inserito!<br>"; 
    echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    setcookie("votato", "si", time()+5*365*24*60*60); //Dura 5 anni, setta il cookie (3/4)
// Inserisce i dati nella tabella
$q=mysql_query("INSERT INTO sondaggio (data_localeS) 
                           VALUES('$data_localeS')");  
// Estrae i dati dalla tabella    
$q="SELECT * FROM sondaggio ";  

...
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
PHP:
$q=mysql_query("INSERT INTO sondaggio (data_localeS) 
                           VALUES('$data_localeS')");
E' questa la query che aggiunge un altro record.
Prova a fare un UPDATE invece di una INSERT.
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [Javascript] [PHP] aggiornare pagina ogni ora Javascript 2
S [PHP]Aggiornare pagina in maniera trasparente... PHP 3
WebDr [ASP] Aggiornare una pagina in un div da un altro div su pagina diversa Classic ASP 3
Metazoo Recuperare variabile php da javascript senza aggiornare pagina PHP 5
N eseguire pagina php senza aggiornare la pagina Ajax 3
L Script per aggiornare pagina html Javascript 2
L Bottone per aggiornare una pagina HTML HTML e CSS 5
F aggiornare contenuto pulsante senza refresh pagina Javascript 2
S Visualizzare dati db senza aggiornare pagina Ajax 10
F creazione files dal pc per aggiornare una pagina web PHP 3
D Aggiornare valori in tempo reale sulla stessa pagina Javascript 1
M Aprire il contenuto di un link in un altro div (senza aggiornare tutta la pagina) Javascript 1
R aggiornare pagina senza vedere caricamento PHP 2
G Come far aggiornare al cliente la pagina statica? HTML e CSS 3
T Aggiornare pagina alla chiusura Javascript 3
G aggiornare pagina Javascript 2
S Aggiornare percorso file collegati MS Access 0
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
F Leggere e aggiornare dati di campi <input text> su file di test PHP 0
M Aggiornare stesso campo in due tabelle PHP 0
Alex_70 Aggiornare campo da un altro campo PHP 16
M Aggiornare simultaneamente i campi di due tabelle collegate con id PHP 4
L aggiornare 2 campi di una tabella insieme PHP 6
Leshabituelles Non riesco ad aggiornare PHP PHP 0
M [Javascript] Aggiornare like totali dopo click Javascript 0
S aggiornare valore di un elemento xml con php PHP 8
P [PHP] Intercettare ed aggiornare campi di un database PHP 5
C [PHP] scrivere o aggiornare record in tabella PHP 7
T Aggiornare una tabella db richiamando da file php PHP 3
Q Problema su come far aggiornare i campi su un database Mysql PHP 17
B [Javascript] Cambiare classe ed aggiornare relativi eventi Javascript 3
S Aggiornare una tabella db richiamando da file php PHP 3
M [PHP] Aggiornare i dati dei record selezionati PHP 3
X come aggiornare codice php? PHP 5
ste80 [PHP] cancellare/aggiornare record DB PHP 24
C Aggiornare App Html5 HTML e CSS 2
D [Javascript] aggiornare numero caratteri se campo già popolato Javascript 5
S [Javascript] Aggiornare solo un DIV una sola volta con un click di un bottone Javascript 9
Magenta [WordPress] Dati ftp per aggiornare in locale WordPress 10
giancadeejay Aggiornare tabella db con php PHP 10
giancadeejay [PHP] Aggiornare un valore del database tramite form PHP 26
giancadeejay [PHP] Aggiornare DB tramite UPLOAD file .csv PHP 39
L [PHP] Sommare campi e aggiornare tabella PHP 14
F Aggiornare marker su mappa google con una funzione ajax richiamata al cambio di una select Ajax 2
M Aggiornare Plesk e PHP su VPS Linux OVH Server Dedicati e VPS 3
P Aggiornare Tabella con form ma senza Mysql HTML e CSS 0
P Aggiornare tabella tramite form PHP 17
garimpeiro Errore di sintassi si tenta di aggiornare file in formato dbf Programmazione 2
G Aggiornare immagine caricata nel DB Classic ASP 1

Discussioni simili