35 lines
1.7 KiB
PHP
Executable File
35 lines
1.7 KiB
PHP
Executable File
|
|
<?php
|
|
header('Content-Type: application/json');
|
|
$pdo = new PDO("pgsql:host=localhost;dbname=adx_system", "admin", "admin123", [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
|
|
|
|
$action = $_GET['action'] ?? $_POST['action'] ?? '';
|
|
|
|
switch ($action) {
|
|
case 'stats':
|
|
$total = $pdo->query("SELECT COUNT(*) FROM admin.knowledge_base")->fetchColumn();
|
|
$categories = $pdo->query("SELECT category, COUNT(*) as count FROM admin.knowledge_base GROUP BY category ORDER BY count DESC")->fetchAll(PDO::FETCH_ASSOC);
|
|
echo json_encode(['total' => $total, 'by_category' => $categories]);
|
|
break;
|
|
case 'search':
|
|
$q = $_GET['q'] ?? '';
|
|
$results = $pdo->query("SELECT id, title, category, content FROM admin.knowledge_base WHERE title ILIKE '%$q%' OR content ILIKE '%$q%' LIMIT 10")->fetchAll(PDO::FETCH_ASSOC);
|
|
echo json_encode(['results' => $results]);
|
|
break;
|
|
case 'get':
|
|
$id = $_GET['id'] ?? 0;
|
|
$entry = $pdo->query("SELECT * FROM admin.knowledge_base WHERE id = $id")->fetch(PDO::FETCH_ASSOC);
|
|
echo json_encode($entry ?: ['error' => 'Not found']);
|
|
break;
|
|
case 'add':
|
|
$title = $_POST['title'] ?? '';
|
|
$category = $_POST['category'] ?? '';
|
|
$content = $_POST['content'] ?? '';
|
|
$pdo->prepare("INSERT INTO admin.knowledge_base (title, category, content) VALUES (?, ?, ?)")->execute([$title, $category, $content]);
|
|
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
|
|
break;
|
|
default:
|
|
echo json_encode(['name' => 'Knowledge Base API', 'actions' => ['stats', 'search', 'get', 'add'], 'entries' => $pdo->query("SELECT COUNT(*) FROM admin.knowledge_base")->fetchColumn()]);
|
|
}
|
|
|