How to develop Projects(OLP) Using PHP and Mysql Part 10

Rashmi Mishra
0

 

How to develop Projects(OLP) Using PHP and Mysql 

Part 10


9️ Online Learning Platform

 Module 2: Add Lessons / Course Content

🎯 Purpose:
Allow teachers to add video lessons or structured content under each course.


Functionalities:

  •  Add lessons (video, text, PDF, etc.) to courses
  •  Edit lesson details
  •  Delete lessons
  •  View lessons as a list under each course
  •  Maintain lesson order (sequence)

Project Structure:

│── /lessons/

   ── add_lesson.php            # Add a lesson to a course

   ── edit_lesson.php           # Edit lesson content

   ── delete_lesson.php         # Delete a lesson

   ── lesson_list.php           # List all lessons in a course

   ── view_lesson.php           # View single lesson


Database Table:

CREATE TABLE lessons (

    id INT AUTO_INCREMENT PRIMARY KEY,

    course_id INT NOT NULL,

    title VARCHAR(255) NOT NULL,

    content TEXT, -- lesson description or HTML content

    video_url VARCHAR(255), -- YouTube or local storage path

    file_url VARCHAR(255), -- for PDFs or extra files

    lesson_order INT DEFAULT 1, -- for sequencing

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

    FOREIGN KEY (course_id) REFERENCES courses(id) ON DELETE CASCADE

);

/lessons/add_lesson.php

<?php 

include '../db.php';


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

    $course_id = $_POST['course_id'];

    $title = mysqli_real_escape_string($conn, $_POST['title']);

    $content = mysqli_real_escape_string($conn, $_POST['content']);

    $video_url = mysqli_real_escape_string($conn, $_POST['video_url']);

    $file_url = mysqli_real_escape_string($conn, $_POST['file_url']);

    $lesson_order = $_POST['lesson_order'];


    $sql = "INSERT INTO lessons (course_id, title, content, video_url, file_url, lesson_order)

            VALUES ('$course_id', '$title', '$content', '$video_url', '$file_url', '$lesson_order')";


    if (mysqli_query($conn, $sql)) {

        echo "Lesson added successfully!";

    } else {

        echo "Error: " . mysqli_error($conn);

    }

}

?>


<!DOCTYPE html>

<html>

<head>

    <title>Add New Lesson</title>

</head>

<body>


<h2>Add New Lesson</h2>

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

    <label for="course_id">Course ID:</label><br>

    <input type="number" name="course_id" id="course_id" required><br><br>


    <label for="title">Lesson Title:</label><br>

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


    <label for="content">Lesson Content:</label><br>

    <textarea name="content" id="content" rows="5" cols="40"></textarea><br><br>


    <label for="video_url">Video URL:</label><br>

    <input type="text" name="video_url" id="video_url"><br><br>


    <label for="file_url">File URL:</label><br>

    <input type="text" name="file_url" id="file_url"><br><br>


    <label for="lesson_order">Lesson Order:</label><br>

    <input type="number" name="lesson_order" id="lesson_order" value="1"><br><br>


    <input type="submit" value="Add Lesson">

</form>


</body>

</html>



/lessons/edit_lesson.php

<?php

include '../db.php';


$lesson = [

    'id' => '',

    'title' => '',

    'content' => '',

    'video_url' => '',

    'file_url' => '',

    'lesson_order' => ''

];


if (isset($_GET['lesson_id'])) {

    $lesson_id = $_GET['lesson_id'];

    $result = mysqli_query($conn, "SELECT * FROM lessons WHERE id='$lesson_id'");

    if ($result && mysqli_num_rows($result) > 0) {

        $lesson = mysqli_fetch_assoc($result);

    } else {

        echo "Lesson not found!";

    }

}


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

    $lesson_id = $_POST['lesson_id'];

    $title = mysqli_real_escape_string($conn, $_POST['title']);

    $content = mysqli_real_escape_string($conn, $_POST['content']);

    $video_url = mysqli_real_escape_string($conn, $_POST['video_url']);

    $file_url = mysqli_real_escape_string($conn, $_POST['file_url']);

    $lesson_order = $_POST['lesson_order'];


    $sql = "UPDATE lessons

            SET title='$title', content='$content', video_url='$video_url', file_url='$file_url', lesson_order='$lesson_order'

            WHERE id='$lesson_id'";


    if (mysqli_query($conn, $sql)) {

        echo "Lesson updated successfully!";

    } else {

        echo "Error: " . mysqli_error($conn);

    }

}

?>


<!DOCTYPE html>

<html>

<head>

    <title>Edit Lesson</title>

</head>

<body>


<h2>Edit Lesson</h2>

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

    <input type="hidden" name="lesson_id" value="<?php echo htmlspecialchars($lesson['id']); ?>">


    <label for="title">Lesson Title:</label><br>

    <input type="text" name="title" id="title" value="<?php echo htmlspecialchars($lesson['title']); ?>" required><br><br>


    <label for="content">Lesson Content:</label><br>

    <textarea name="content" id="content" rows="5" cols="40"><?php echo htmlspecialchars($lesson['content']); ?></textarea><br><br>


    <label for="video_url">Video URL:</label><br>

    <input type="text" name="video_url" id="video_url" value="<?php echo htmlspecialchars($lesson['video_url']); ?>"><br><br>


    <label for="file_url">File URL:</label><br>

    <input type="text" name="file_url" id="file_url" value="<?php echo htmlspecialchars($lesson['file_url']); ?>"><br><br>


    <label for="lesson_order">Lesson Order:</label><br>

    <input type="number" name="lesson_order" id="lesson_order" value="<?php echo htmlspecialchars($lesson['lesson_order']); ?>"><br><br>


    <input type="submit" value="Update Lesson">

</form>


</body>

</html>

/lessons/delete_lesson.php

<?php

include '../db.php';

 

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

    $lesson_id = $_POST['lesson_id'];

 

    $sql = "DELETE FROM lessons WHERE id='$lesson_id'";

 

    if (mysqli_query($conn, $sql)) {

        echo "Lesson deleted successfully!";

    } else {

        echo "Error: " . mysqli_error($conn);

    }

}

?>


/lessons/lesson_list.php

<?php

include '../db.php';

 

if (isset($_GET['course_id'])) {

    $course_id = $_GET['course_id'];

 

    $sql = "SELECT * FROM lessons WHERE course_id='$course_id' ORDER BY lesson_order ASC";

    $result = mysqli_query($conn, $sql);

 

    echo "<h2>Lessons List</h2><ul>";

    while ($row = mysqli_fetch_assoc($result)) {

        echo "<li><strong>{$row['lesson_order']}. {$row['title']}</strong><br>";

        echo "Video: <a href='{$row['video_url']}' target='_blank'>Watch</a><br>";

        echo "File: <a href='{$row['file_url']}' download>Download</a><br>";

        echo "<a href='view_lesson.php?lesson_id={$row['id']}'>View Details</a></li><hr>";

    }

    echo "</ul>";

} else {

    echo "Course ID not specified.";

}

?>


/lessons/view_lesson.php

<?php

include '../db.php';

 

if (isset($_GET['lesson_id'])) {

    $lesson_id = $_GET['lesson_id'];

 

    $sql = "SELECT * FROM lessons WHERE id='$lesson_id'";

    $result = mysqli_query($conn, $sql);

    $lesson = mysqli_fetch_assoc($result);

 

    echo "<h2>{$lesson['title']}</h2>";

    echo "<p><strong>Content:</strong><br>{$lesson['content']}</p>";

    if (!empty($lesson['video_url'])) {

        echo "<p><strong>Video:</strong><br><a href='{$lesson['video_url']}' target='_blank'>Watch Video</a></p>";

    }

    if (!empty($lesson['file_url'])) {

        echo "<p><strong>File:</strong><br><a href='{$lesson['file_url']}' download>Download File</a></p>";

    }

} else {

    echo "Lesson ID not found.";

}

?>



Tags

Post a Comment

0Comments

Post a Comment (0)