سیستم نمرهدهی دانشآموزان در PHP و MySQL
ایجاد یک سیستم نمرهدهی برای دانشآموزان میتواند چالشبرانگیز و در عین حال هیجانانگیز باشد. این سیستم به معلمان کمک میکند تا نمرات و عملکرد دانشآموزان را بهراحتی مدیریت کنند. در ادامه، به بررسی مراحل ایجاد یک سیستم نمرهدهی با استفاده از PHP و MySQL میپردازیم.
طراحی پایگاه داده
اولین قدم، طراحی پایگاه داده است. شما به جداول زیر نیاز دارید:
- جدول دانشآموزان: شامل اطلاعات شخصی مانند نام، نام خانوادگی، سن، و کلاس.
- جدول دروس: شامل نام درس، کد درس و توضیحات.
- جدول نمرات: شامل شناسه دانشآموز، شناسه درس، نمره و تاریخ ثبت نمره.
```sql
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
age INT,
class VARCHAR(10)
);
CREATE TABLE subjects (
id INT AUTO_INCREMENT PRIMARY KEY,
subject_name VARCHAR(100),
subject_code VARCHAR(10)
);
CREATE TABLE grades (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT,
subject_id INT,
score DECIMAL(5, 2),
date_recorded DATE,
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (subject_id) REFERENCES subjects(id)
);
```
کدنویسی با PHP
بعد از ایجاد پایگاه داده، شما باید به کدنویسی با PHP بپردازید. برای شروع، میتوانید از یک فرم HTML برای ورود نمرات استفاده کنید.
```html
<form action="submit_grade.php" method="POST">
<label for="student_id">شناسه دانشآموز:</label>
<input type="number" name="student_id" required>
<label for="subject_id">شناسه درس:</label>
<input type="number" name="subject_id" required>
<label for="score">نمره:</label>
<input type="number" name="score" required>
<input type="submit" value="ثبت نمره">
</form>
```
در فایل `submit_grade.php`، میتوانید نمره را در پایگاه داده ثبت کنید.
```php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "school";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$student_id = $_POST['student_id'];
$subject_id = $_POST['subject_id'];
$score = $_POST['score'];
$sql = "INSERT INTO grades (student_id, subject_id, score, date_recorded) VALUES ('$student_id', '$subject_id', '$score', NOW())";
if ($conn->query($sql) === TRUE) {
echo "نمره با موفقیت ثبت شد.";
} else {
echo "خطا: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
```
نمایش نمرات
برای نمایش نمرات ثبتشده، میتوانید از یک صفحه دیگر استفاده کنید که نمرات را از پایگاه داده خوانده و نمایش دهد.
```php
<?php
$sql = "SELECT students.first_name, students.last_name, subjects.subject_name, grades.score
FROM grades
JOIN students ON grades.student_id = students.id
JOIN subjects ON grades.subject_id = subjects.id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "نام: " . $row["first_name"]. " " . $row["last_name"]. " - درس: " . $row["subject_name"]. " - نمره: " . $row["score"]. "<br>";
}
} else {
echo "هیچ نمرهای ثبت نشده است.";
}
$conn->close();
?>
```
نتیجهگیری
ایجاد یک سیستم نمرهدهی در PHP و MySQL میتواند به سادگی انجام شود. با استفاده از پایگاه داده برای ذخیره اطلاعات و PHP برای پردازش دادهها، شما میتوانید یک سیستم کارآمد برای مدیریت نمرات دانشآموزان بسازید. این سیستم میتواند به تدریج با امکانات بیشتری مانند گزارشگیری و تجزیه و تحلیل پیشرفت دانشآموزان گسترش یابد.