Modul 6 - oppgave 4 og 5

master
Eirik Th S 2021-11-21 00:48:35 +01:00
parent 7e8252f3a5
commit 746b5b3278
4 changed files with 116 additions and 7 deletions

View File

@ -76,4 +76,17 @@ pre {
}
.table tr:nth-child(2n) {
background-color: #0002;
}
.interesse-wrapper {
margin: auto;
width: 80vw;
min-width: 200px;
}
.interesse {
border: 1px dashed white;
width: 100px;
margin: 8px;
float: left;
}

View File

@ -49,7 +49,7 @@ class Medlem {
public string $epost = '';
public DateTime $dob;
public string $kjoenn = '';
public string $interesser = '';
public array $interesser = array();
public string $kursaktiviteter = '';
public DateTime $medlem_siden;
public string $kontigentstatus = '';
@ -169,9 +169,10 @@ function hentMedlem($dbid){
function hentMedlemmer($perSide = 20, $side = 1, $medlemId = 0){
$sideStart = $side?($side-1)*$perSide:0;
$medlemmer = array();
$order = array();
$hentMedlemmerSQL = "
SELECT medlemId, fornavn, etternavn, adresse, m.postnummer, p.poststed, epost, dob, kjoenn, kontigentStatus, medlemStart
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
";
@ -179,7 +180,9 @@ function hentMedlemmer($perSide = 20, $side = 1, $medlemId = 0){
$hentMedlemmerSQL .= " WHERE `medlemId` = ?";
}
else {
$hentMedlemmerSQL .= "ORDER BY etternavn, fornavn LIMIT $sideStart,$perSide";
$order[] = "etternavn";
$order[] = "fornavn";
$hentMedlemmerSQL .= "ORDER BY ".implode(', ', $order)." LIMIT $sideStart,$perSide";
}
try {
@ -242,12 +245,20 @@ class Aktivitet {
}
}
function hentAktivitet($id = false){
function hentAktivitet($id = false, $all = false){
$aktiviteter = array();
$where = array();
$sql = "SELECT * FROM Aktivitet;";
if($id){
$sql = "SELECT * FROM Aktivitet WHERE aktivitetId = ?";
$where[] = "aktivitetId = ?";
}
if(!$all){
$where[] = "slutt > now()";
}
$sql = "SELECT * FROM Aktivitet";
if(!empty($where)){
$sql .= " WHERE ".implode(' AND ', $where);
}
try {
@ -283,4 +294,49 @@ function hentAktivitet($id = false){
return $aktiviteter[0];
}
return $aktiviteter;
}
class Interesse {
public string $navn;
public array $medlemmer;
public function __construct($navn){
$this->navn = $navn;
}
}
function hentInteresser(){
$interesser = array();
$hentInteresseSQL = "
SELECT i.interesseId, i.navn, ir.medlemId
FROM Interesse i
LEFT OUTER JOIN Interesse_register ir on ir.interesseId = i.interesseId
ORDER BY i.navn
";
try {
$db = getPdoConn();
$stmt = $db->prepare($hentInteresseSQL);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach($stmt->fetchAll() as $row){
if(!isset($interesser[$row['interesseId']])){
$interesser[$row['interesseId']] = new Interesse($row['navn']);
}
if(!isset($interesser[ $row['interesseId'] ]->medlemmer)){
$interesser[ $row['interesseId'] ]->medlemmer = array();
}
if($row['medlemId']){
$interesser[$row['interesseId']]->medlemmer[] = $row['medlemId'];
}
}
}
catch (PDOException $e){
echo "SQL-feil: ".$e;
}
finally {
$db = null;
}
return $interesser;
}

View File

@ -45,7 +45,7 @@ if(!empty($aktiviteter)){ ?>
echo " <td>".$aktivitet->beskrivelse."</td>\n";
echo " <td>".$aktivitet->ansvarligId."</td>\n";
echo " <td>".(($temp=$aktivitet->start)?$temp->format('d. M Y H:i'):'')."</td>\n";
echo " <td>".(($temp=$aktivitet->stopp)?$temp->format('d. M Y H:i'):'')."</td>\n";
echo " <td>".(($temp=$aktivitet->slutt)?$temp->format('d. M Y H:i'):'')."</td>\n";
echo "</tr>\n";
}
?>

40
modul6/index6_5.php Normal file
View File

@ -0,0 +1,40 @@
<?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>Interesser</h2>
<?php
$interesser = hentInteresser();
if(!empty($interesser)){
echo "<div class='interesse-wrapper'>";
foreach ($interesser as $i){
echo "<div class='interesse'>";
echo "<h4>".$i->navn."</h4>";
$medlemmer = array();
foreach ($i->medlemmer as $m){
$me = ($medlemmer[$m] ?? $medlemmer[$m] = hentMedlem($m));
echo $me->fornavn."<br>";
}
echo "<br>";
echo "</div>";
}
echo "</div>";
}
?>
</div>
</body>
</html>