my-portfolio/src/api/projectData.php
rodude123 cef7cc5e64 Base HTML for projects section completed
Signed-off-by: rodude123 <rodude123@gmail.com>
2023-01-17 01:56:03 +00:00

84 lines
2.6 KiB
PHP

<?php
namespace api;
use PDO;
require_once "./config.php";
/**
* Project Data Class
* Define all functions which either get, update, create or delete timeline data
*/
class projectData
{
/**
* Get all project data
* @return array - Array of all project data or error message
*/
function getProjectData(): array
{
$conn = dbConn();
$stmt = $conn->prepare("SELECT title, isMainProject, information, imgLocation, projectLink, gitLink FROM projects order by date LIMIT 4;");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($result)
{
return $result;
}
return array("errorMessage" => "Error, project data not found");
}
function updateProjectData(string $title, string $isMainProject, string $information, string $projectLink, string $githubLink, string $id): bool
{
$conn = dbConn();
$stmt = $conn->prepare("UPDATE projects SET title = :title, isMainProject = :isMainProject, information = :information, projectLink = :projectLink, githubLink = :githubLink WHERE ID = :id");
$stmt->bindParam(":title", $title);
$stmt->bindParam(":isMainProject", $isMainProject);
$stmt->bindParam(":information", $information);
$stmt->bindParam(":projectLink", $projectLink);
$stmt->bindParam(":githubLink", $githubLink);
$stmt->bindParam(":id", $id);
$stmt->execute();
if ($stmt->rowCount() > 0)
{
return true;
}
return false;
}
function deleteProjectData(int $id): bool
{
$conn = dbConn();
$stmt = $conn->prepare("DELETE FROM projects WHERE ID = :id");
$stmt->bindParam(":id", $id);
$stmt->execute();
if ($stmt->rowCount() > 0)
{
return true;
}
return false;
}
function addProjectData(string $title, string $isMainProject, string $information, string $projectLink, string $githubLink): bool
{
$conn = dbConn();
$stmt = $conn->prepare("INSERT INTO projects (title, isMainProject, information, projectLink, githubLink) VALUES (:title, :isMainProject, :information, :projectLink, :githubLink)");
$stmt->bindParam(":title", $title);
$stmt->bindParam(":isMainProject", $isMainProject);
$stmt->bindParam(":information", $information);
$stmt->bindParam(":projectLink", $projectLink);
$stmt->bindParam(":githubLink", $githubLink);
$stmt->execute();
if ($stmt->rowCount() > 0)
{
return true;
}
return false;
}
}