أول مشروع كامل: نظام إدارة تذاكر الدعم الفني

احمد محمود

أول مشروع كامل: نظام إدارة تذاكر الدعم الفني

في الدرس ده، هنتعلم إزاي نعمل مشروع كامل لنظام إدارة تذاكر الدعم الفني باستخدام PHP وMySQL. المشروع ده هيساعدك تفهم إزاي تتعامل مع قواعد البيانات وتطور واجهات المستخدم.



1. إعداد قاعدة البيانات

أول حاجة، هنعمل قاعدة بيانات جديدة اسمها ticket_system وهنعمل فيها جدول support_tickets. ممكن تستخدم الكود ده لإنشاء قاعدة البيانات والجدول:

CREATE DATABASE ticket_system;

USE ticket_system;

CREATE TABLE support_tickets (

    id INT AUTO_INCREMENT PRIMARY KEY,

    subject VARCHAR(255) NOT NULL,

    message TEXT NOT NULL,

    status ENUM('open', 'closed') DEFAULT 'open',

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

);

    

2. إعداد اتصال قاعدة البيانات

بعد ما عملنا قاعدة البيانات، نحتاج نعمل ملف للاتصال بقاعدة البيانات. هنسمي الملف db.php ومحتواه هيكون كالتالي:

<?php

$host = 'localhost';

$db_name = 'ticket_system';

$username = 'your_username'; // هنا حط اسم المستخدم بتاع قاعدة البيانات

$password = 'your_password'; // هنا حط كلمة السر بتاعتك

try {

    $conn = new PDO("mysql:host=$host;dbname=$db_name", $username, $password);

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

    echo "Connection failed: " . $e->getMessage();

}

?>

    

3. واجهة المستخدم

دلوقتي هنبدأ نعمل واجهة المستخدم اللي هتظهر التذاكر. هنسمي الملف index.php ومحتواه هيكون كالتالي:

<?php

include 'db.php';

// جلب التذاكر من قاعدة البيانات

$stmt = $conn->prepare("SELECT * FROM support_tickets");

$stmt->execute();

$tickets = $stmt->fetchAll();

?>

<!DOCTYPE html>

<html lang="ar">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>نظام إدارة تذاكر الدعم الفني</title>

</head>

<body>

    <h1>نظام إدارة تذاكر الدعم الفني</h1>

    <h2>التذاكر المفتوحة</h2>

    <table border="1">

        <tr>

            <th>ID</th>

            <th>الموضوع</th>

            <th>الرسالة</th>

            <th>الحالة</th>

        </tr>

        <?php foreach ($tickets as $ticket): ?>

        <tr>

            <td><?php echo $ticket['id']; ?></td>

            <td><?php echo $ticket['subject']; ?></td>

            <td><?php echo $ticket['message']; ?></td>

            <td><?php echo $ticket['status']; ?></td>

        </tr>

        <?php endforeach; ?>

    </table>

</body>

</html>

    

4. إضافة تذكرة جديدة

عشان نضيف تذكرة جديدة، هنعمل ملف جديد اسمه create_ticket.php ومحتواه هيكون كالتالي:

<?php

include 'db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $subject = $_POST['subject'];

    $message = $_POST['message'];

    $stmt = $conn->prepare("INSERT INTO support_tickets (subject, message) VALUES (?, ?)");

    $stmt->execute([$subject, $message]);

    header("Location: index.php");

    exit();

}

?>

<!DOCTYPE html>

<html lang="ar">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>إضافة تذكرة جديدة</title>

</head>

<body>

    <h1>إضافة تذكرة جديدة</h1>

    <form method="POST" action="">

        <label for="subject">الموضوع:</label><br>

        <input type="text" id="subject" name="subject" required><br>

        <label for="message">الرسالة:</label><br>

        <textarea id="message" name="message" required></textarea><br><br>

        <input type="submit" value="إرسال">

    </form>

</body>

</html>

    

الملخص

كده إحنا عملنا أول مشروع كامل لنظام إدارة تذاكر الدعم الفني. اتعلمنا إزاي نعمل قاعدة بيانات، نتصل بيها، ونظهر التذاكر على واجهة المستخدم. المراحل الجاية ممكن نضيف ميزات أكتر زي تعديل التذاكر وحذفها.

لو عندك أي استفسار أو عايز تعرف أكتر، متترددش تسأل!

إرسال تعليق

شاهد أيضاً :-
Cookie Consent
تعريف الارتباط

نستخدم ملفات تعريف الارتباط لضمان حصولك على أفضل تجربة.

Oops!
يبدو أن هناك مشكلة في اتصالك بالإنترنت. يرجى الاتصال بالإنترنت والمحاولة مرة أخرى.
AdBlock Detected!
لقد اكتشفنا أنك تستخدم إضافة حظر الإعلانات في متصفحك.
يتم استخدام الإيرادات التي نحصل عليها من الإعلانات لإدارة هذا الموقع، لذا نرجو منك إضافة موقعنا إلى القائمة البيضاء في إضافة حظر الإعلانات الخاصة بك.
Site is Blocked
Sorry! This site is not available in your country.