PHP MySQLi প্রজেক্ট: স্টুডেন্ট অ্যাটেনডেন্স সিস্টেম
এই টিউটোরিয়ালে আমরা একটি সম্পূর্ণ স্টুডেন্ট অ্যাটেনডেন্স সিস্টেম তৈরি করব PHP এবং MySQLi ব্যবহার করে।
✅ ১. ডেটাবেজ সেটআপ
attendance_system নামে একটি ডেটাবেজ তৈরি করুন এবং নিচের SQL কোডটি রান করুন:
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
roll VARCHAR(50) NOT NULL
);
CREATE TABLE attendance (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT,
att_date DATE,
status ENUM(‘Present’,’Absent’),
FOREIGN KEY (student_id) REFERENCES students(id)
);
✅ ২. ডেটাবেজ কানেকশন (db.php)
$host = ‘localhost’;
$user = ‘root’;
$password = ”;
$dbname = ‘attendance_system’;
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_error) {
die(“Connection failed: ” . $conn->connect_error);
}
?>
✅ ৩. স্টুডেন্ট লিস্ট দেখানো
student_list.php
<table style=”width:100%; border-collapse: collapse; border:1px solid #ccc;”>
<tr style=”background:#3498db; color:white;”>
<th style=”border:1px solid #ccc; padding:10px;”>Roll</th>
<th style=”border:1px solid #ccc; padding:10px;”>Name</th>
</tr>
<?php
$result = $conn->query(“SELECT * FROM students”);
while($row = $result->fetch_assoc()) {
echo “<tr><td style=’border:1px solid #ccc; padding:10px;’>” . $row[‘roll’] . “</td><td style=’border:1px solid #ccc; padding:10px;’>” . $row[‘name’] . “</td></tr>”;
}
?>
</table>
✅ ৪. অ্যাটেনডেন্স সাবমিট ফর্ম
<?php
$result = $conn->query(“SELECT * FROM students”);
while($row = $result->fetch_assoc()) {
echo $row[‘name’] . ” – <input type=’radio’ name=’att[“.$row[‘id’].”]’ value=’Present’> Present <input type=’radio’ name=’att[“.$row[‘id’].”]’ value=’Absent’> Absent<br>”;
}
?>
<input type=”submit” value=”Submit Attendance”>
</form>
✅ ৫. অ্যাটেনডেন্স প্রসেস (submit_attendance.php)
include ‘db.php’;
$date = date(‘Y-m-d’);
foreach($_POST[‘att’] as $student_id => $status) {
$stmt = $conn->prepare(“INSERT INTO attendance (student_id, att_date, status) VALUES (?, ?, ?)”);
$stmt->bind_param(“iss”, $student_id, $date, $status);
$stmt->execute();
}
echo “Attendance Submitted!”;
?>
✅ ৬. অ্যাটেনডেন্স রিপোর্ট
attendance_report.php
include ‘db.php’;
$sql = “SELECT s.name, s.roll, a.att_date, a.status FROM attendance a JOIN students s ON a.student_id = s.id ORDER BY a.att_date DESC”;
$result = $conn->query($sql);
echo “<table style=’width:100%; border-collapse: collapse; border:1px solid #ccc;’>”;
echo “<tr style=’background:#9c27b0; color:white;’><th style=’border:1px solid #ccc; padding:10px;’>Date</th><th style=’border:1px solid #ccc; padding:10px;’>Roll</th><th style=’border:1px solid #ccc; padding:10px;’>Name</th><th style=’border:1px solid #ccc; padding:10px;’>Status</th></tr>”;
while($row = $result->fetch_assoc()) {
echo “<tr><td style=’border:1px solid #ccc; padding:10px;’>”.$row[‘att_date’].”</td><td style=’border:1px solid #ccc; padding:10px;’>”.$row[‘roll’].”</td><td style=’border:1px solid #ccc; padding:10px;’>”.$row[‘name’].”</td><td style=’border:1px solid #ccc; padding:10px;’>”.$row[‘status’].”</td></tr>”;
}
echo “</table>”;
?>