Hallo, ich versuche mich gerade an einer Film-Datenbank:
Ich habe das ganze so begonnen:
database.class.php
index.php
Ich habe eine Datenbankklasse, die ich noch erweitern werde.
In der Index wird vorerst nur eine Liste angezeigt, die weitere Infos beim Klick auf den Titel liefert.
Ich wollte nun wissen, ob ich so weitermachen kann oder ob ich einen Fehler habe, welcher mir später das Leben schwer machen wird.
MfG
Ich habe das ganze so begonnen:
database.class.php
PHP-Code:
<?php
class Database {
private $host = "localhost";
private $user = "user";
private $pass = "password";
private $dbname = "database";
private $dbh;
private $error;
private $stmt;
public function __construct() {
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
try {
$this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
} catch (PDOException $e) {
$this->error = $e->getMessage();
}
}
public function query($query) {
$this->stmt = $this->dbh->prepare($query);
}
public function bind($param, $value, $type = NULL) {
$this->stmt->bindValue($param, $value, $type);
return $this;
}
public function execute() {
return $this->stmt->execute();
}
public function resultset() {
$this->execute();
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
}
public function single() {
$this->execute();
return $this->stmt->fetch(PDO::FETCH_ASSOC);
}
public function rowCount() {
return $this->stmt->rowCount();
}
public function lastInsertId() {
return $this->dbh->lastInsertId();
}
}
PHP-Code:
<?php
include 'include/header.php';
include 'include/database.class.php';
$database = new Database();
if (!isset($_GET['id'])) {
$database->query("SELECT id, title, teaser, cover FROM entrys");
$stmt = $database->resultset();
foreach ($stmt as $row) {
?>
<h1><a href="?id=<?php echo $row['id'] ?>"><?php echo $row['title'] ?></a></h1>
<div classs="row">
<div class="col-md-3">
<img src="<?php echo $row['cover'] ?>" alt ="<?php echo $row['title'] ?>" title="<?php echo $row['title'] ?>" class="img-responsive">
</div>
<div class="col-md-9">
<p><?php echo $row['teaser'] ?></p>
</div>
</div>
<?php
}
} else {
$database->query("SELECT id, title, text, date, genre, cover FROM entrys WHERE id = :id");
$database->bind(':id', $_GET['id']);
$stmt = $database->resultset();
foreach ($stmt as $row) {
?>
<h1><?php echo $row['title'] ?> <small>(<?php echo date('Y', strtotime($row['date'])) ?>)</small></h1>
<div classs="row">
<div class="col-md-6">
<img src="<?php echo $row['cover'] ?>" alt ="<?php echo $row['title'] ?>" title="<?php echo $row['title'] ?> " class="img-responsive">
</div>
<div class="col-md-6">
<p><?php echo $row['text'] ?></p>
<p><?php echo $row['genre'] ?></p>
<a href="javascript:history.back()" class="btn btn-success">Zurück</a>
</div>
</div>
<?php
}
}
include 'include/footer.php';
In der Index wird vorerst nur eine Liste angezeigt, die weitere Infos beim Klick auf den Titel liefert.
Ich wollte nun wissen, ob ich so weitermachen kann oder ob ich einen Fehler habe, welcher mir später das Leben schwer machen wird.
MfG
Kommentar