Dopo test e prove questo il codice corretto, se qualcuno avesse consigli su migliorie sarebbero ben accetti,altrimenti direi di chiudere.
Questo è il motore di update al db
$new_score= ($punteggio + $agg_punti);
	if($update = $mysqli->query("UPDATE ragazzi SET punteggio = $new_score, aggiornato = NOW() WHERE id = '$id' ")){
				echo "<p></p><div class=\"tabella\">Dati aggiornati ed ordinati!</div>";
				echo "<meta http-equiv='Refresh' content='5; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
			} else {
			echo "Aggiornamento non riuscito!\"<br>";
			echo "Errore:" . $mysqli->error .".";
		}
mentre qua ilcodice html con recupero dati dal db per ogni utente
<label class="form_admin">Utente</label><label class="form_admin">Punti</label><label class="form_admin">Punti nuovi</label><label>Aggiornato a:</label><p></p>
        <?php
	if($result = $mysqli->query("SELECT id,nome,cognome,punteggio,aggiornato FROM ragazzi ORDER BY punteggio DESC")){
			while ($row = $result->fetch_assoc())
			{
			echo '<input type="hidden" name="id" value="'.$row['id'].'">';
			echo '<input type="text" name="nome" value="'.$row['nome'].' '.$row['cognome'].'" readonly="readonly">';
			echo '<input type="text" name="punteggio" value="'. $row['punteggio'].'" readonly="readonly" >';
			echo '<input type="number" class="onlyNumber" name="nuovi_punti" value="0" min="0">';
			echo '<input type="time" name="data" value="'.$row['aggiornato'].'" readonly="readonly"><br><br>';
			}
	}
	?>
Ho aggiunto il campo "aggiornato" al db per sapere quando è stato fatto l'ultimo update, il problema invece era che non potevo inserire i dati nel db e quindi aggiornarli in quanto con POST dell'id prendevo il value che io mettevo come nome e cognome dell'utente. Ho quindi creato un  altro campo input nascosto legato ad ogni utente grazie al quale associo l'id e posso fare l'update al db. Se qualcuno avesse un'idea diversa , migliore, rimango a disposizione.
Grazie a tutti