Witam,
Chciałbym Wam zaprezentować 3 "szablony" klas, klasę kategorii, artykułu i pseudo-obsługi bazy danych. Te klasy nie są całkowicie gotowe ( ich funkcjonalność), ale daję je pod Wasze profesjonalne oko, żebyście już na początku mogli mnie pokierować na bardziej poprawne tory

. Zdaję sobie sprawę, że pewnie te klasy są paskudne, mało funkcjonalne itd. Ale o to właśnie chodzi, żeby się poprawiać

.
Z góry dzięki za każdą wypowiedź.
Pozdrawiam!

<?php
class Database {
public $host = "localhost";
public $dbname = "articles";
public $user = "root";
public $pass = "vertrigo";
public $dbh;
function connect(){
try {
$this->dbh = new PDO("mysql:host=$this->host; dbname=$this->dbname", $this->user, $this->pass);
echo "Połączenie nawiązane"; } catch
( PDOException
$error){ die("Failed to connect:".$error->getMessage());}
}
function set_coding($what)
{
$this->dbh->exec("SET NAMES ".$what);
}
}
class Taskplain{
public $content;
public $solution;
public $nr_original;
public $id_autor;
public $id_kategoria;
public $points;
public $id_date;
public $link;
function __construct($content, $id_autor, $id_kategoria,$id_date,$link ){
$this->content = $content;
$this->id_autor = $id_autor;
$this->id_kategoria = $id_kategoria;
$this->id_date = $id_date;
$this->link = $link;
}
function add($dbh)
{
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO task_e( content, id_autor, id_kategoria, link) VALUES (:content, :id_autor, :id_kategoria, :link)";
try {
$q = $dbh->prepare($sql);
}
catch
(PDOException
$e){ print_r( $e->getTrace() );
}
try {
$q->execute(array(':content'=>$this->content, :id_autor'=>$this->id_autor,
':id_kategoria'=>$this->id_kategoria,
:link'=>$this->link));
}
catch(PDOException $e)
{
}
}
}
class Category{
public $id;
public $name;
function addCategory($name, $dbh){
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO category( name) VALUES (:name)";
$q = $dbh->prepare($sql);
try {
$q->execute(array(':name'=>$this->name));
}
catch(PDOException $e)
{
print_r( "AddCategory: ".$e->getTrace() ); }
}
function __construct($name)
{
$this->name = $name;
}
function getCateogory($dbh){ // ta klasa miałaby mi tworzyć tablice ze wszystkimi kategoriami
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$q = $dbh->prepare("SELECT * FROM autor");
try{$q->execute();}
catch
(PDOException
$e) { print_r( "getCategory: ".$e->getTrace() );}
while ($row = $q->fetch(PDO::FETCH_ASSOC))
{
array_push($this->names, $row['name']); // tu chciałbym zastosować lepszy pomysł, zamiast tego while użyć fetch.... z PDO }
}
}
?>