I have some training videos in which I update the database once per second. The working code that I have passes seconds watched from JS to PHP to Mysql. The problem that I am having is that it will not update unless I start a new connection with every request (every second). Is there a better way? My JS code;
//AJAX save 'seconds played' values to database
function updatedb() {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","http://localhost/userupdate.php?q=" + userID + "&r=" + (medeno[index][0]) + "&s=" + index, true);
xmlhttp.send();
}
and my PHP code (seperate file.php);
<?php
//Get values
$userID=$_GET['q'];
$secc=$_GET['r'];
$index=$_GET['s'];
$userID=(int)$userID;
$secc=(int)$secc;
$index=(int)$index;
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "medeno_user", "cr3134", "medeno_users");
//Update database 1 case per video course
switch ($index) {
case 1: $stmt1=$mysqli->prepare('UPDATE users set videoSec1=? WHERE userID=?'); break;
case 2: $stmt1=$mysqli->prepare('UPDATE users set videoSec2=? WHERE userID=?'); break;
case 3: $stmt1=$mysqli->prepare('UPDATE users set videoSec3=? WHERE userID=?'); break;
case 4: $stmt1=$mysqli->prepare('UPDATE users set videoSec4=? WHERE userID=?'); break;
case 5: $stmt1=$mysqli->prepare('UPDATE users set videoSec5=? WHERE userID=?'); break;
case 6: $stmt1=$mysqli->prepare('UPDATE users set videoSec6=? WHERE userID=?'); break;
case 7: $stmt1=$mysqli->prepare('UPDATE users set videoSec7=? WHERE userID=?'); break;
case 8: $stmt1=$mysqli->prepare('UPDATE users set videoSec8=? WHERE userID=?'); break;}
$stmt1->bind_param('ii',$secc,$userID);
$stmt1->execute();
$stmt1->close();