05348527785
SQL
DROP TABLE IF EXISTS uploads;
CREATE TABLE resultshayat8 (
id INT AUTO_INCREMENT PRIMARY KEY,
ad VARCHAR(50),
soyad VARCHAR(50),
sinif VARCHAR(20),
sube VARCHAR(10),
ogrno VARCHAR(20),
score INT DEFAULT 0
);
CREATE TABLE upload5 (
id INT AUTO_INCREMENT PRIMARY KEY,
ulke VARCHAR(255) NOT NULL,
baslik VARCHAR(255) NOT NULL,
aciklama TEXT,
dosya_yolu VARCHAR(500),
yukleyen_ad VARCHAR(100),
yukleyen_soyad VARCHAR(100),
okul VARCHAR(255),
tarih DATE NULL,
onay ENUM('beklemede','onayli','reddedildi') DEFAULT 'beklemede',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS users;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
ad VARCHAR(50),
soyad VARCHAR(50),
email VARCHAR(100),
username VARCHAR(50) UNIQUE,
password VARCHAR(255)
);
--------------------------------------------------------------------------------------------------------------
results
resultsgenel
resultsmat
resultsturk
resultshayat
resultsdicte
veritabanları mevcuttur
--------------------------------------------------------------------------------------------------------------
şimdi bana diğer sayfalara buradaki gibi veri tabanını eklemek istiyorum sayfaların düzenini bozmadan,
html, css ve js dosyalarına nereye ve hangi kodları eklemeliyim ayrıca backend.php dosyasını değiştirmeden mi
yoksa nasıl değişiklikler yaparak kullanmalıyım
--------------------------------------------------------------------------------------------------------------
Tamam! Bu çok güzel bir soru çünkü mevcut yapıyı bozmadan diğer sayfalara da veri tabanını entegre etmek mümkün. Adım adım açıklayayım:
--------------------------------------------------------------------------------------------------------------
HTML Dosyasında Yapılacaklar
Mevcut sayfanda öğrenci formu veya quiz olmasa bile, veri tabanı ile iletişim kuracak konteynerler eklemen gerek.
Örnek: bir sayfada sadece sonuçları göstermek istiyorsan:
html
resultsBtn → tıklandığında sonuçları çekecek
results → sonuçları tablo şeklinde gösterecek
Not: HTML düzenini bozmamak için sadece gerekli div ve butonları ekle. CSS’i bozmadan stil verebilirsin.
--------------------------------------------------------------------------------------------------------------
CSS Dosyasında Yapılacaklar
Mevcut test.css veya kendi CSS’ine şu sınıfları ekleyebilirsin:
.results-table {
width: 100%;
border-collapse: collapse;
margin-top: 15px;
}
.results-table th, .results-table td {
border: 1px solid #ccc;
padding: 8px;
text-align: center;
}
.results-table th {
background: #f0f0f0;
}
--------------------------------------------------------------------------------------------------------------
JS Dosyasında Yapılacaklar
Mevcut test.js dosyanı ya da yeni bir JS dosyası oluşturabilirsin.
Backend’e veri çekmek için fetch kodlarını kopyala, sadece element ID’lerini değiştir.
Örnek: sadece sonuçları göstermek için:
--------------------------------------------------------------------------------------------------------------
js
document.getElementById("resultsBtn").addEventListener("click", ()=>{
fetch("backend.php?action=get")
.then(r=>r.json())
.then(data=>{
let html = `
| İsim | Sınıf | Şube | Öğrenci No | Puan |
`;
data.forEach(row=>{
let adMasked = row.ad.length>3 ? row.ad.slice(0,3)+"*".repeat(row.ad.length-3) : row.ad;
let soyadMasked = row.soyad.length>2 ? row.soyad.slice(0,2)+"*".repeat(row.soyad.length-2) : row.soyad;
html += `
| ${adMasked} ${soyadMasked} |
${row.sinif} |
${row.sube} |
${row.ogrno} |
${row.score} |
`;
});
html += "
";
document.getElementById("results").innerHTML = html;
})
.catch(err=>{
document.getElementById("results").innerHTML = "Sonuçlar alınırken hata oluştu.";
console.error(err);
});
});
Özet: backend.php ile iletişim JS ile oluyor, HTML’de sadece container, CSS’de tablo stili gerekiyor.
--------------------------------------------------------------------------------------------------------------
Backend.php’de Değişiklik
Çoğu durumda backend.php değişmeden kullanabilirsin, çünkü:
action=get → sonuçları çekmek için
action=register → öğrenci eklemek için
action=save → skor güncellemek için
Eğer yeni sayfalarda yeni veri türleri ekleyeceksen (ör. sınav kategorisi, tarih vb.) backend’e ek alanlar eklemen gerekir:
--------------------------------------------------------------------------------------------------------------
Backend.php
// Örnek: yeni alan eklemek
$kategori = $conn->real_escape_string($data["kategori"] ?? "");
Ama sadece mevcut results tablosunu göstermek için hiçbir değişiklik yapmana gerek yok.
--------------------------------------------------------------------------------------------------------------
Özet Akış
HTML → gerekli div, button ekle
CSS → tablo ve container stili ekle
JS → fetch ile backend’e bağlan, container’a veri yaz
Backend → çoğu zaman değişmeden kullanabilirsin
--------------------------------------------------------------------------------------------------------------