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) {
|
.table tr:nth-child(2n) {
|
||||||
background-color: #0002;
|
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 string $epost = '';
|
||||||
public DateTime $dob;
|
public DateTime $dob;
|
||||||
public string $kjoenn = '';
|
public string $kjoenn = '';
|
||||||
public string $interesser = '';
|
public array $interesser = array();
|
||||||
public string $kursaktiviteter = '';
|
public string $kursaktiviteter = '';
|
||||||
public DateTime $medlem_siden;
|
public DateTime $medlem_siden;
|
||||||
public string $kontigentstatus = '';
|
public string $kontigentstatus = '';
|
||||||
|
@ -169,9 +169,10 @@ function hentMedlem($dbid){
|
||||||
function hentMedlemmer($perSide = 20, $side = 1, $medlemId = 0){
|
function hentMedlemmer($perSide = 20, $side = 1, $medlemId = 0){
|
||||||
$sideStart = $side?($side-1)*$perSide:0;
|
$sideStart = $side?($side-1)*$perSide:0;
|
||||||
$medlemmer = array();
|
$medlemmer = array();
|
||||||
|
$order = array();
|
||||||
|
|
||||||
$hentMedlemmerSQL = "
|
$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
|
FROM Medlem m
|
||||||
INNER JOIN Postnummer p ON m.postnummer = p.postnummer
|
INNER JOIN Postnummer p ON m.postnummer = p.postnummer
|
||||||
";
|
";
|
||||||
|
@ -179,7 +180,9 @@ function hentMedlemmer($perSide = 20, $side = 1, $medlemId = 0){
|
||||||
$hentMedlemmerSQL .= " WHERE `medlemId` = ?";
|
$hentMedlemmerSQL .= " WHERE `medlemId` = ?";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$hentMedlemmerSQL .= "ORDER BY etternavn, fornavn LIMIT $sideStart,$perSide";
|
$order[] = "etternavn";
|
||||||
|
$order[] = "fornavn";
|
||||||
|
$hentMedlemmerSQL .= "ORDER BY ".implode(', ', $order)." LIMIT $sideStart,$perSide";
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -242,12 +245,20 @@ class Aktivitet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function hentAktivitet($id = false){
|
function hentAktivitet($id = false, $all = false){
|
||||||
$aktiviteter = array();
|
$aktiviteter = array();
|
||||||
|
$where = array();
|
||||||
|
|
||||||
$sql = "SELECT * FROM Aktivitet;";
|
|
||||||
if($id){
|
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 {
|
try {
|
||||||
|
@ -283,4 +294,49 @@ function hentAktivitet($id = false){
|
||||||
return $aktiviteter[0];
|
return $aktiviteter[0];
|
||||||
}
|
}
|
||||||
return $aktiviteter;
|
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->beskrivelse."</td>\n";
|
||||||
echo " <td>".$aktivitet->ansvarligId."</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->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";
|
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