Modul 6 - oppgave 4 og 5
parent
7e8252f3a5
commit
746b5b3278
13
index.css
13
index.css
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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";
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -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>
|
Loading…
Reference in New Issue