Whatsapp: +357 96 704056 veya PM
Merhabalar, kullanıcıların sqlde kayıtlı time değeri var ve bu saniye cinsinden, ben ise bunu dakikaya çevirdim. Örneğin time değeri 60 ise 00:1:00 olacak şekilde ve bir php tabloda gözüküyor bu.
Tablodaki değeri geriye doğru saydırıp kullanıcı sayfayı yenilese bile nerede kaldıysa oradan devam etmesini nasıl sağlayacağım? En son 00:00:00 olduğunda ise tablodan silinsin.
sql kaydedip, php ile saniye başı sunucuyu aşırı yoracağını düşündük, cookie ile de kaydetmek aklımıza geldi fakat o da aynı şekil. ücretli yardımcı olabilecekler fiyat bilgisi ile Whatsapp'tan iletişime geçebilir.
<script>
function startCountdown(id, seconds) {
var countdownElement = document.getElementById('countdown-' + id);
function updateCountdown() {
if (seconds <= 0) {
countdownElement.innerHTML = "00:00:00";
return;
}
var hours = Math.floor(seconds / 3600);
var minutes = Math.floor((seconds % 3600) / 60);
var remainingSeconds = seconds % 60;
countdownElement.innerHTML =
(hours < 10 ? "0" : "") + hours + ":" +
(minutes < 10 ? "0" : "") + minutes + ":" +
(remainingSeconds < 10 ? "0" : "") + remainingSeconds;
seconds--;
}
updateCountdown();
var countdownInterval = setInterval(updateCountdown, 1000);
}
</script>
Kodu aşağıdaki gibi düzeltin
<script>
function startCountdown(id, seconds) {
var countdownElement = document.getElementById('countdown-' + id);
// LocalStorage'dan kalan süreyi al
var storedSeconds = localStorage.getItem('countdown-' + id);
if (storedSeconds) {
seconds = parseInt(storedSeconds);
}
function updateCountdown() {
if (seconds <= 0) {
countdownElement.innerHTML = "00:00:00";
clearInterval(countdownInterval); // Interval'i durdur
localStorage.removeItem('countdown-' + id); // LocalStorage'dan sil
deleteFromDatabase(id); // Veritabanından sil
return;
}
var hours = Math.floor(seconds / 3600);
var minutes = Math.floor((seconds % 3600) / 60);
var remainingSeconds = seconds % 60;
countdownElement.innerHTML =
(hours < 10 ? "0" : "") + hours + ":" +
(minutes < 10 ? "0" : "") + minutes + ":" +
(remainingSeconds < 10 ? "0" : "") + remainingSeconds;
localStorage.setItem('countdown-' + id, seconds); // LocalStorage'a kaydet
seconds--;
}
updateCountdown();
var countdownInterval = setInterval(updateCountdown, 1000);
}
function deleteFromDatabase(id) {
// AJAX ile veritabanından kaydı sil
var xhr = new XMLHttpRequest();
xhr.open("POST", "delete_record.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("id=" + id);
}
</script>sonrasında bir delete_record.php adında bir php dosyası oluşturun
<?php
// Veritabanı bağlantısı
$conn = new mysqli("localhost", "username", "password", "database");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["id"];
// Veritabanından kaydı sil
$sql = "DELETE FROM tabloadı WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->close();
$conn->close();
}
?>