Facciamo un passo indietro. Ripensando a quello che devi fare, l'uso di variabili di sessione lato server ovviamente non funziona, perché le richieste d'inserimento e di aggiornamento arrivano da client diversi. Un contatore lato client potrebbe andar bene, manetendolo come variabile d'istanza (o globale), e confrontando questo contatore con quello di ritorno dalla richiesta. Dopo il confronto devi aggiornare il contatore. Non è certo la soluzione ideale, ma funziona.<br>
Altrimenti, come diceva Stefano, inserisci una colonna (o ti fai un'altra tabella esterna se non vuoi cambiare la struttura della tabella originale) in cui inserire la data d'inserimento. Ad ogni richiesta del client confronti il Time della richiesta (togliendo lo step temporale tra le richieste, es. 10s) e lo confronti con quello dell'inserimento.<br>
<br>Es. Inserimento 0.00.00:01 (mezzanotte e un secondo)<br>Richiesta client: 0.00.00:12<br><br>effective_time = 0.00.00:12 - 10s -> 0.00.00:02<br><br>Siccome effective_time è maggiore della data d'inserimento, vuol dire che dalla precedente richiesta non è stato aggiunto niente...<br>
Se invece l'inserimento fosse stato effettuato alle 0.00.00:03, allora l'inserimento è avvenuto tra la precedente richiesta e quella attuale.<br><br>Ci possono essere tanti modi per gestire questa cosa. Questi due forse sono i più semplici e immediati...<br>
<br>Giovanni<br><br><div class="gmail_quote">Il giorno 07 giugno 2011 12:51, Nicola De Innocentis <span dir="ltr"><<a href="mailto:deinnocentis.nicola@gmail.com">deinnocentis.nicola@gmail.com</a>></span> ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Ciao, allora ho fatto un po' di prove e sono arrivato a tale risultato.Purtroppo però non mi fa l'aggiornamento.<br>
Seguendo il II suggerimento,ho creato un contatore che viene aggiornato ad ogni richiesta.Lasciando intatta la funzione Data() dove invio la richiesta,ho modificato,invece,la funzione myHandler(),all'interno della quale ho inizializzato un contatore.Attraverso questi si verifica con degli if se myRequest.responseText è diverso o meno dalla variabile contatore,e quindi si effetua o meno il refresh della pagina.<br>

Ho modificato pure controllo.php che mi verifica il COUNT,passando come parametro finale $array['conto'] ovvero il numero di record e non più $esito(valore 0 o 1).<br><br><br>function myHandler() {<br>    var contatore=null;<div class="im">
<br>
    if (myRequest.readyState == 4 && myRequest.status == 200) {<br></div>       if(myRequest.responseText>contatore){<div class="im"><br>            window.location.href = 'index.php';<br></div>            contatore=myRequest.responseText;<br>

            return contatore;<br>          } if (myRequest.responseText==contatore){<br>            return contatore;<br>            }if(myRequest.responseText<contatore){<div class="im"><br>            window.location.href = 'index.php';<br>
</div>
            contatore=myRequest.responseText;<br>            return contatore;<br>          }<br>    }    <br>}<br><br>----------------PHP--------------------controllo.php-------------------<br><?php<br>// effettuo alcuni controlli come ad esempio una query<br>

// una modifica a variabili di sessione o altro - dipende da voi<br>// nel mio esempio controllo il numero di record in una tabella...<div class="im"><br><br>$connessione=pg_connect("host=<i>host</i> port=5432 dbname=<i>dbname</i> user=<i>postgres</i> password=<i>psw</i>");<br>

 <br><br></div><div class="im">$query = "SELECT COUNT(*) AS conto  FROM tabella";<br></div><div class="im">$result = pg_query($query) or die (pg_error());<br><br>$array = pg_fetch_array($result);<br><br></div>$contatore=(int)$array['conto'];        //qui converto in intero<br>

echo $contatore;<br>?><br><br>Ora all'aggiunta o eliminazione di un record lato server,lo script lato client non funziona e non mi aggiorna la pagina.Sicuramente c'è qualcosa di errato,data la mia inesperienza.Qualche suggerimento?<br>

Grazie sempre per gli aiuti....<br>Nicola.<br><div class="gmail_quote">Il giorno 06 giugno 2011 21:32, Nicola De Innocentis <span dir="ltr"><<a href="mailto:deinnocentis.nicola@gmail.com" target="_blank">deinnocentis.nicola@gmail.com</a>></span> ha scritto:<div>
<div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">Grazie per i consigli preziosi,proverò subito i vostri suggerimenti.<br>nicola.<br><br><div class="gmail_quote">

Il giorno 06 giugno 2011 20:02, G. Allegri <span dir="ltr"><<a href="mailto:giohappy@gmail.com" target="_blank">giohappy@gmail.com</a>></span> ha scritto:<div><div></div><div><br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">O se non vuoi inerire una nuova colonna ti tieni un contatore in sessione che aggiorni ad ogni richiesta. Se in una richiesta il COUNT è diverso dal contatore, qualcosa è stato aggiunto (o tolto).<br>


<br>giovanni<br><br><div class="gmail_quote">
Il giorno 06 giugno 2011 19:06, Stefano Salvador <span dir="ltr"><<a href="mailto:stefano.salvador@gmail.com" target="_blank">stefano.salvador@gmail.com</a>></span> ha scritto:<div><div></div><div><br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">



l'errore secondo me è nella query che usi per leggere i dati:<br>
<div><br>
> $query = "SELECT COUNT(*) AS conto  FROM tabella";<br>
<br>
</div>con questa query conti tutti i record della nella tabella, se vuoi<br>
solo i record nuovi devi usare una qualche tipo di condizione di<br>
where, ad esempio supponendo che nella tabella ci sia una colonna con<br>
il tempo in cui è stato inserito il record dovresti fare qualcosa del<br>
tipo:<br>
<br>
> $query = "SELECT COUNT(*) AS conto  FROM tabella WHERE tempo_inserimento >".$ultimo_aggiornamento;<br>
<br>
dove $ultimo_aggiornamento è una variabile che devi salvarti nella<br>
sessione oppure passare come parametro della richiesta http.<br>
<br>
<br>
Ciao,<br>
<font color="#888888"><br>
Stefano<br>
</font><div><div></div><div>_______________________________________________<br>
Iscriviti all'associazione GFOSS.it: <a href="http://www.gfoss.it/drupal/iscrizione" target="_blank">http://www.gfoss.it/drupal/iscrizione</a><br>
<a href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a><br>
<a href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" target="_blank">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a><br>
Questa e' una lista di discussione pubblica aperta a tutti.<br>
Non inviate messaggi commerciali.<br>
I messaggi di questa lista non rispecchiano necessariamente<br>
le posizioni dell'Associazione GFOSS.it.<br>
518 iscritti al 3.6.2011</div></div></blockquote></div></div></div><br><div style="padding:0px;margin-left:0px;margin-top:0px;overflow:hidden;word-wrap:break-word;color:black;font-size:10px;text-align:left;line-height:130%">



</div>
<br>_______________________________________________<br>
Iscriviti all'associazione GFOSS.it: <a href="http://www.gfoss.it/drupal/iscrizione" target="_blank">http://www.gfoss.it/drupal/iscrizione</a><br>
<a href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a><br>
<a href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" target="_blank">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a><br>
Questa e' una lista di discussione pubblica aperta a tutti.<br>
Non inviate messaggi commerciali.<br>
I messaggi di questa lista non rispecchiano necessariamente<br>
le posizioni dell'Associazione GFOSS.it.<br>
518 iscritti al 3.6.2011<br></blockquote></div></div></div><br><br clear="all"><div><div></div><div><br>-- <br>Nicola De Innocentis<br><br><a href="http://www.nicoladeinnocentis.it" target="_blank">www.nicoladeinnocentis.it</a><br>

<br>
</div></div></blockquote></div></div></div><div><div></div><div class="h5"><br><br clear="all"><br>-- <br>Nicola De Innocentis<br><br><a href="http://www.nicoladeinnocentis.it" target="_blank">www.nicoladeinnocentis.it</a><br>
<br>
</div></div></blockquote></div><br><div style="visibility: hidden; left: -5000px; position: absolute; z-index: 9999; padding: 0px; margin-left: 0px; margin-top: 0px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 130%;" id="avg_ls_inline_popup">
</div>