is115-php/modul6/index6_1.php

127 lines
4.1 KiB
PHP

<?php
include '../common.php';
include 'forberedelser.php';
?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="../index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Medlemsliste</h2>
<?php
$medlemmer = array();
$perPage = $_GET['size'] ?? 20;
$pageStart = $_GET['page']?($_GET['page']-1)*$perPage:0;
// Åpne databasetilkobling som definert i forberedelser.php
$db = null;
try {
$db = getPdoConn();
}
catch (PDOException $e){
die("Fikk ikke koblet til: <br>\n".$e);
}
$hentMedlemmer = "
SELECT medlemId, fornavn, etternavn, adresse, m.postnummer, p.poststed, epost, dob, kjoenn, kontigentStatus, medlemStart
FROM Medlem m
INNER JOIN Postnummer p ON m.postnummer = p.postnummer
ORDER BY etternavn, fornavn
LIMIT $pageStart,$perPage
";
try {
$statement = $db->prepare($hentMedlemmer);
$statement->execute();
$statement->setFetchMode(PDO::FETCH_ASSOC);
$resultat = $statement->fetchAll();
foreach ($resultat as $key => $row){
$medlem = new Medlem();
$medlem->dbid = $row['medlemId'];
$medlem->fornavn = $row['fornavn'];
$medlem->etternavn = $row['etternavn'];
$medlem->adresse1 = $row['adresse'];
$medlem->postnummer = $row['postnummer'];
$medlem->poststed = $row['poststed'];
$medlem->epost = $row['epost'];
$medlem->dob = DateTime::createFromFormat('Y-m-d', $row['dob'] );
$medlem->kjoenn = $row['kjoenn'];
$medlem->kontigentstatus = $row['kontigentStatus'];
$medlem->medlem_siden = DateTime::createFromFormat('Y-m-d', $row['medlemStart'] );
array_push($medlemmer, $medlem);
}
}
catch (PDOException $e){
echo "SQL-feil: <br>\n".$e;
} finally {
$db = null;
}
?>
</div>
<div style="text-align: center; margin-bottom: 50px;">
<?php
// Koden er ganske lik den brukt i modul 4 oppgave 3.
if(!empty($medlemmer)){
?>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Fornavn</th>
<th>Etternavn</th>
<th>Adresse</th>
<th>Postnummer/-sted</th>
<th>Mobilnummer</th>
<th>E-post</th>
<th>Fødselsdato</th>
<th>Kjønn</th>
<th>Interesser</th>
<th>Kursaktiviteter</th>
<th>Medlem siden</th>
<th>Kontigentstatus</th>
</tr>
</thead>
<tbody>
<?php
foreach ($medlemmer as $medlemID => $medlem){
echo "<tr>\n";
echo " <td>".($medlemID+1)."</td>\n";
echo " <td>".($medlem->fornavn ?? '')."</td>\n";
echo " <td>".($medlem->etternavn ?? '')."</td>\n";
echo " <td>".($medlem->adresse1 ?? '');
if(!empty($medlem->adresse2)){ echo "<br>".$medlem->adresse2; } // Skriver inn adresselinje 2 hvis aktuelt
echo "</td>\n";
echo " <td>{$medlem->postnummer} {$medlem->poststed}</td>\n";
echo " <td>".($medlem->mobilnummer ?? '')."</td>\n";
echo " <td>".($medlem->epost ?? '')."</td>\n";
echo " <td>".($medlem->dob->format('d. M Y') ?? '')."</td>\n";
echo " <td>".($medlem->kjoenn ?? '')."</td>\n";
echo " <td>".($medlem->interesser ?? '')."</td>\n";
echo " <td>".($medlem->kursaktiviteter ?? '')."</td>\n";
echo " <td>".($medlem->medlem_siden->format('d. M Y') ?? '')."</td>\n";
echo " <td>".($medlem->kontigentstatus ?? '')."</td>\n";
echo "</tr>\n";
}
?>
</tbody>
</table>
<?php } ?>
</div>
</body>
</html>