Artigo.php
Ocorreram erros de include para carregar a página adicionar Artigo, consegui resolver o problema acrescentando ../ antes do endereço do arquivo conexao.php no require da classe Artigo.php como podem observar na imagem abaixo, porém essa solução causou erros para carregar a página index. Quando removo ../ antes do endereço do arquivo conexao.php, resolvo o problema na página index, mas volta o problema na página Adicionar Artigo....
Como consigo resolver esse conflito?
index.php
<?php
require_once 'src/Artigo.php';
$artigo = new Artigos($mysql);
$artigos = $artigo->exibirArtigos();
require_once 'conexao.php';
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Meu Blog</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
<h1>Meu Blog</h1>
<?php foreach ($artigos as $artigo) : ?>
<h2>
<a href= "artigo.php?id=<?php echo $artigo['id'];?>">
<?php echo $artigo['titulo']; ?>
</a>
</h2>
<p>
<?php echo $artigo['conteudo']; ?>
</p>
<?php endforeach ?>
</div>
</body>
</html>
adicionar-arquivo.php
<?php
require_once '../conexao.php';
require_once '../src/Artigo.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$artigo = new Artigos($mysql);
$artigo->adicionar($_POST['titulo'], $_POST['conteudo']);
header('Location: adicionar-artigo.php');
die();
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<link rel="stylesheet" type="text/css" href="../style.css">
<meta charset="UTF-8">
<title>Adicionar Artigo</title>
</head>
<body>
<div id="container">
<h1>Adicionar Artigo</h1>
<form action="adicionar-artigo.php" method="post">
<p>
<label for="">Digite o título do artigo</label>
<input class="campo-form" type="text" name="titulo" id="titulo" />
</p>
<p>
<label for="">Digite o conteúdo do artigo</label>
<textarea class="campo-form" type="text" name="conteudo" id="conteudo"></textarea>
</p>
<p>
<button class="botao">Criar Artigo</button>
</p>
</form>
</div>
</body>
</html>
Artigo.php
<?php
require_once '../conexao.php';
class Artigos
{
private $mysql;
public function __construct(mysqli $mysql)
{
$this->mysql = $mysql;
}
public function adicionar(string $titulo, string $conteudo): void
{
$insereArtigo = $this->mysql->prepare('INSERT INTO artigos (titulo, conteudo) VALUES(?, ?);');
$insereArtigo->bind_param('ss', $titulo, $conteudo);
$insereArtigo->execute();
}
public function exibirArtigos(): array
{
$resultado = $this->mysql->query('SELECT id, titulo, conteudo FROM artigos');
$artigos = $resultado->fetch_all(MYSQLI_ASSOC);
return $artigos;
}
public function exibirId(string $id): array
{
$selecionaArtigo = $this->mysql->prepare('SELECT id, titulo, conteudo FROM artigos WHERE id = ?');
$selecionaArtigo->bind_param('s', $id);
$selecionaArtigo->execute();
$artigo = $selecionaArtigo->get_result()->fetch_assoc();
return $artigo;
}
}
conexao.php
<?php
$mysql = new mysqli('localhost', 'root', '', 'blog');
$mysql->set_charset('utf8');
if ($mysql == false) {
echo 'Erro de conexão';
}
/* ------------------------------------------------------------------------------------------------------------- */