[AJAX] requete SQl update toutes les secondes
Bonjour,
Je voudrais effectuer une requête update SQL toutes les secondes sur mon site web lorsque le visiteur est sur une page en particulier. Cette requête met à jour la base de données avec l'heure courante, ce qui me permet ensuite d'avoir le temps de connexion sur cette page.
Pour cela, j'ai pensé utiliser Ajax, mais c'est la première fois que j'en fais.
Je vous monter ce que j'ai fais, j'aimerais savoir ce qui cloche car rien n'est mis à jour dans ma base de données.
code Ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
<script language="javascript">
function request(url,cadre) {
var XHR = null;
if(window.XMLHttpRequest) // Firefox
XHR = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
XHR = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
// envoie de la requête, methode GET et de l'url
XHR.open("POST",url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// on guette les changements d'état de l'objet
XHR.onreadystatechange = function attente() {
// l'état est à 4, requête reçu !
if(XHR.readyState == 4) {
// ecriture de la réponse
document.getElementById(cadre).innerHTML = XHR.responseText;
}
}
XHR.send(null); // le travail est terminé
return;
}
setInterval( "request('script_update_stats_connexions.php','xmlhttp')", 1000);
</script> |
et le code PHP qui fait la requete :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
<?php
//header("Content-Type: text/plain"); // Utilisation d'un header pour spécifier le type de contenu de la page. Ici, il s'agit juste de texte brut (text/plain).
function tableConnexion(){
$annee=date('Y');
if ($annee%2 == 1){
$annee=1;
}
else{
$annee=0;
}
$mois=date('m');
$tableConnexion='connexionsan'.$annee.'mois'.$mois;
return $tableConnexion;
}
$tableConnexion=tableConnexion();
$nouvelId=$_SESSION['nouvelId'];
$finConnexion=date('Y-m-d H:i:s');
$requeteUpdate = "UPDATE stats_connexions.$tableConnexion SET duree='$finConnexion' WHERE idconnexion='$nouvelId'";
mysql_query($requeteUpdate);
?> |
Merci d'avance pour votre aide ! J'en aurai bien besoin :?