Path : /home/vishqocm/pcib.in/admin/
File Upload :
Current File : //home/vishqocm/pcib.in/admin/course_reviews.php

<?php
// Include database configuration
require_once '../admin/database/db_config.php';

// Include header
include_once 'includes/header.php';

// Handle review deletion
if (isset($_GET['delete']) && is_numeric($_GET['delete'])) {
    $review_id = $_GET['delete'];
    $delete_query = "DELETE FROM course_reviews WHERE id = " . $review_id;
    $delete_result = $conn->query($delete_query);
    
    if ($delete_result) {
        $delete_message = "Review deleted successfully!";
    } else {
        $delete_error = "Error deleting review: " . $conn->error;
    }
}

// Handle adding a new review
if (isset($_POST['add_review'])) {
    $course_id = $_POST['course_id'];
    $user_id = $_POST['user_id'];
    $rating = $_POST['rating'];
    $comment = $_POST['comment'];
    
    // Check if comment column exists
    $columnExistsResult = $conn->query("SHOW COLUMNS FROM course_reviews LIKE 'comment'");
    $commentColumnExists = ($columnExistsResult && $columnExistsResult->num_rows > 0);
    
    // Prepare the query based on column existence
    if ($commentColumnExists) {
        $insert_query = "INSERT INTO course_reviews (course_id, user_id, rating, comment, created_at) 
                       VALUES ('$course_id', '$user_id', '$rating', '$comment', NOW())";
    } else {
        $insert_query = "INSERT INTO course_reviews (course_id, user_id, rating, created_at) 
                       VALUES ('$course_id', '$user_id', '$rating', NOW())";
    }
    
    $insert_result = $conn->query($insert_query);
    
    if ($insert_result) {
        $success_message = "Review added successfully!";
    } else {
        $error_message = "Error adding review: " . $conn->error;
    }
}

// Check if course_reviews table exists
$table_exists = $conn->query("SHOW TABLES LIKE 'course_reviews'");
$course_reviews_exists = ($table_exists && $table_exists->num_rows > 0);

// Create table if it doesn't exist
if (!$course_reviews_exists && isset($_POST['create_table'])) {
    $create_table_sql = "CREATE TABLE course_reviews (
        id INT(11) NOT NULL AUTO_INCREMENT,
        course_id INT(11) NOT NULL,
        user_id INT(11) NOT NULL,
        rating INT(1) NOT NULL,
        comment TEXT,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY (id),
        KEY idx_course_id (course_id),
        KEY idx_user_id (user_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4";
    
    $create_result = $conn->query($create_table_sql);
    
    if ($create_result) {
        $success_message = "Course reviews table created successfully!";
        $course_reviews_exists = true;
    } else {
        $error_message = "Error creating course_reviews table: " . $conn->error;
    }
}

// Get existing reviews if the table exists
$reviews = [];
if ($course_reviews_exists) {
    $reviews_query = "SELECT cr.*, c.title as course_title, CONCAT(u.first_name, ' ', u.last_name) as user_name 
                     FROM course_reviews cr 
                     LEFT JOIN courses c ON cr.course_id = c.id 
                     LEFT JOIN users u ON cr.user_id = u.id 
                     ORDER BY cr.created_at DESC";
    $reviews_result = $conn->query($reviews_query);
    
    if ($reviews_result && $reviews_result->num_rows > 0) {
        while ($row = $reviews_result->fetch_assoc()) {
            $reviews[] = $row;
        }
    }
}

// Get courses for the add review form
$courses = [];
$courses_query = "SELECT id, title FROM courses ORDER BY title ASC";
$courses_result = $conn->query($courses_query);

if ($courses_result && $courses_result->num_rows > 0) {
    while ($row = $courses_result->fetch_assoc()) {
        $courses[] = $row;
    }
}

// Get users for the add review form
$users = [];
$users_query = "SELECT id, first_name, last_name FROM users ORDER BY first_name ASC";
$users_result = $conn->query($users_query);

if ($users_result && $users_result->num_rows > 0) {
    while ($row = $users_result->fetch_assoc()) {
        $users[] = $row;
    }
}
?>

<div class="container-fluid">
    <div class="d-sm-flex align-items-center justify-content-between mb-4">
        <h1 class="h3 mb-0 text-gray-800">Manage Course Reviews</h1>
    </div>

    <?php if (isset($success_message)): ?>
    <div class="alert alert-success"><?php echo $success_message; ?></div>
    <?php endif; ?>

    <?php if (isset($error_message)): ?>
    <div class="alert alert-danger"><?php echo $error_message; ?></div>
    <?php endif; ?>

    <?php if (isset($delete_message)): ?>
    <div class="alert alert-success"><?php echo $delete_message; ?></div>
    <?php endif; ?>

    <?php if (isset($delete_error)): ?>
    <div class="alert alert-danger"><?php echo $delete_error; ?></div>
    <?php endif; ?>

    <?php if (!$course_reviews_exists): ?>
    <div class="card shadow mb-4">
        <div class="card-header py-3">
            <h6 class="m-0 font-weight-bold text-primary">Create Reviews Table</h6>
        </div>
        <div class="card-body">
            <p>The course_reviews table does not exist in the database. Would you like to create it?</p>
            <form method="post" action="">
                <button type="submit" name="create_table" class="btn btn-primary">Create Table</button>
            </form>
        </div>
    </div>
    <?php else: ?>
    <!-- Add Review Card -->
    <div class="card shadow mb-4">
        <div class="card-header py-3">
            <h6 class="m-0 font-weight-bold text-primary">Add New Review</h6>
        </div>
        <div class="card-body">
            <form method="post" action="">
                <div class="form-row">
                    <div class="form-group col-md-4">
                        <label for="course_id">Course</label>
                        <select class="form-control" id="course_id" name="course_id" required>
                            <option value="">Select Course</option>
                            <?php foreach ($courses as $course): ?>
                            <option value="<?php echo $course['id']; ?>"><?php echo $course['title']; ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    <div class="form-group col-md-4">
                        <label for="user_id">User</label>
                        <select class="form-control" id="user_id" name="user_id" required>
                            <option value="">Select User</option>
                            <?php foreach ($users as $user): ?>
                            <option value="<?php echo $user['id']; ?>"><?php echo $user['first_name'] . ' ' . $user['last_name']; ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    <div class="form-group col-md-4">
                        <label for="rating">Rating</label>
                        <select class="form-control" id="rating" name="rating" required>
                            <?php for ($i = 5; $i >= 1; $i--): ?>
                            <option value="<?php echo $i; ?>"><?php echo $i; ?> Stars</option>
                            <?php endfor; ?>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label for="comment">Review Comment</label>
                    <textarea class="form-control" id="comment" name="comment" rows="3" required></textarea>
                </div>
                <button type="submit" name="add_review" class="btn btn-primary">Add Review</button>
            </form>
        </div>
    </div>

    <!-- Reviews List -->
    <div class="card shadow mb-4">
        <div class="card-header py-3">
            <h6 class="m-0 font-weight-bold text-primary">All Reviews</h6>
        </div>
        <div class="card-body">
            <?php if (empty($reviews)): ?>
            <div class="alert alert-info">No reviews found in the database.</div>
            <?php else: ?>
            <div class="table-responsive">
                <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
                    <thead>
                        <tr>
                            <th>ID</th>
                            <th>Course</th>
                            <th>User</th>
                            <th>Rating</th>
                            <th>Comment</th>
                            <th>Date</th>
                            <th>Actions</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($reviews as $review): ?>
                        <tr>
                            <td><?php echo $review['id']; ?></td>
                            <td><?php echo $review['course_title'] ?? 'Unknown Course'; ?></td>
                            <td><?php echo $review['user_name'] ?? 'Unknown User'; ?></td>
                            <td>
                                <?php for ($i = 1; $i <= 5; $i++): ?>
                                    <?php if ($i <= $review['rating']): ?>
                                    <i class="fas fa-star text-warning"></i>
                                    <?php else: ?>
                                    <i class="far fa-star text-muted"></i>
                                    <?php endif; ?>
                                <?php endfor; ?>
                            </td>
                            <td><?php echo isset($review['comment']) ? htmlspecialchars($review['comment']) : ''; ?></td>
                            <td><?php echo date('M d, Y', strtotime($review['created_at'])); ?></td>
                            <td>
                                <a href="course_reviews.php?delete=<?php echo $review['id']; ?>" class="btn btn-danger btn-sm" onclick="return confirm('Are you sure you want to delete this review?')">
                                    <i class="fas fa-trash"></i>
                                </a>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            <?php endif; ?>
        </div>
    </div>
    <?php endif; ?>
</div>

<?php
// Include footer
include_once 'includes/footer.php';
?>