ich versuche mich grade an einer Seitennavigation. Diese läuft auch. Jedoch muss ich die DB Verbindung 2x angeben, da ich das ganze in einer Funktion habe. Kann ich das auch anders machen?
index.php
footer.php
config.php
in der config.php muss ich 2x die DB Verbindung aufbauen. Geht das auch anders?
Ich habe übrigens versucht mich an das EVA Prinzip zu halten. Ob mir das gelungen ist, weiß ich als Anfänger nicht so ganz.
index.php
PHP-Code:
<?php
include('include/config.php');
include('include/header.php');
if (!isset($_GET['id'])) {
if (isset($_GET["page"])) {
$page = $_GET["page"];
} else {
$page = 1;
}
$start_from = ($page - 1) * PERPAGE;
$stmt = $dbh->prepare("SELECT * FROM entrys ORDER BY id DESC LIMIT $start_from," . PERPAGE);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
?>
<div class="well">
<h1><a href="?id=<?php echo $row['id']; ?>" title="<?php echo $row['title']; ?>"><?php echo $row['title']; ?></a></h1>
<p><?php echo date('d.m.Y - H:i:s', strtotime($row['date'])); ?></p>
<p><?php echo $row['teaser']; ?></p>
</div>
<?php
}
} else {
$stmt = $dbh->prepare("SELECT * FROM entrys WHERE id = :id");
$stmt->bindValue(':id', $_GET['id']);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
?>
<div class="well">
<h1><?php echo $row['title']; ?></h1>
<p><?php echo date('d.m.Y - H:i:s', strtotime($row['date'])); ?></p>
<p><?php echo $row['text']; ?></p>
</div>
<a href="javascript:history.back();" class="btn btn-default"><span class="glyphicon glyphicon-arrow-left"></span></a>
<?php
}
}
include('include/footer.php');
PHP-Code:
</div>
<?php include 'sidebar.php'; ?>
</div>
</div>
<?php pager(); ?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</body>
</html>
PHP-Code:
<?php
error_reporting(E_ALL);
/*
* Database Connection
*/
define('DB_TYPE', 'mysql');
define('DB_HOST', 'localhost');
define('DB_NAME', 'learn');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
try {
$dbh = new PDO(DB_TYPE . ':host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USERNAME, DB_PASSWORD);
} catch (PDOException $e) {
die($e->getMessage());
}
/*
* Constants
*/
define('SITENAME', 'TESTING');
define('PERPAGE', 5);
/*
* Functions
*/
function pager() {
try {
$dbh = new PDO(DB_TYPE . ':host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USERNAME, DB_PASSWORD);
$result = $dbh->prepare("SELECT COUNT(id) FROM entrys");
$result->execute();
$row = $result->fetch();
$total_records = $row[0];
$total_pages = ceil($total_records / PERPAGE);
?>
<nav>
<ul class="pagination">
<?php
for ($i = 1; $i <= $total_pages; $i++) {
?>
<li><a href="index.php?page=<?php echo $i; ?>"><?php echo $i; ?></a></li>
<?php
}
?>
</ul>
</nav>
<?php
} catch (PDOException $e) {
die($e->getMessage());
}
}
Ich habe übrigens versucht mich an das EVA Prinzip zu halten. Ob mir das gelungen ist, weiß ich als Anfänger nicht so ganz.
Kommentar