Modul 6 WIP

master
Eirik Th S 2021-11-18 20:49:17 +01:00
parent 1a9d4cf194
commit 7e8252f3a5
9 changed files with 786 additions and 63 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
modul0
*.zip
index*_6*
pma/

View File

@ -1,6 +1,7 @@
<?php
require 'database.php';
DEFINE('SELECTED', 'selected');
$tabellSQL = "
CREATE OR REPLACE TABLE Postnummer (
postnummer INT(4) NOT NULL PRIMARY KEY,
@ -13,6 +14,7 @@ CREATE OR REPLACE TABLE Medlem (
etternavn VARCHAR(40) NOT NULL,
adresse VARCHAR(40) NOT NULL,
postnummer INT(4) NOT NULL,
mobilnummer VARCHAR(12),
epost VARCHAR(100) NOT NULL UNIQUE,
dob DATE NOT NULL,
kjoenn ENUM('M', 'F', 'O') NOT NULL,
@ -31,7 +33,11 @@ function getPdoConn(): PDO {
}
class Medlem {
public string $rolle = "Standard";
public static $stringNames = array("fornavn", "etternavn", "adresse1", "adresse2", "poststed", "mobilnummer", "epost", "kjoenn", "interesser", "kursaktiviteter", "kontigentstatus");
public static $intFields = array("postnummer");
public static $dateFields = array("dob", "medlem_siden");
public string $rolle = "Standard"; //TODO: Implementer roller
public int $dbid;
public string $fornavn = '';
public string $etternavn = '';
@ -39,6 +45,7 @@ class Medlem {
public string $adresse2 = '';
public int $postnummer;
public string $poststed = '';
public string $mobilnummer = '';
public string $epost = '';
public DateTime $dob;
public string $kjoenn = '';
@ -46,20 +53,101 @@ class Medlem {
public string $kursaktiviteter = '';
public DateTime $medlem_siden;
public string $kontigentstatus = '';
public $endret = array();
public static function getFromId($dbid): Medlem {
return hentMedlem($dbid);
}
public function set($felt, $verdi){
$this->${$felt} = $verdi;
if($this->{$felt} != $verdi){
$this->{$felt} = $verdi;
$this->endret[] = $felt;
return true;
}
return false;
}
public function get($felt){
return $this->${$felt};
}
public function verifyMember():bool{
return
!empty($this->fornavn) &&
!empty($this->etternavn) &&
!empty($this->adresse1) &&
!empty($this->postnummer) &&
!empty($this->epost) &&
!empty($this->dob) &&
!empty($this->kjoenn) &&
!empty($this->medlem_siden) &&
!empty($this->kontigentstatus);
}
public function persistMember(){
if($this->verifyMember()){
$db = getPdoConn();
if(hentPoststed($this->postnummer) === false){
if(empty($this->poststed)){
throw new InvalidArgumentException("Kan ikke lage et poststed som ikke finnes. Sjekk at medlemmet har et oppgitt poststed.");
}
$kommuneStmt = $db->prepare("INSERT INTO Postnummer VALUES (?,?)");
$kommuneStmt->bindValue(1, $this->postnummer);
$kommuneStmt->bindValue(2, $this->poststed);
$kommuneStmt->execute();
}
$insertSQL = "INSERT INTO Medlem (fornavn, etternavn, adresse, postnummer, mobilnummer, epost, dob, kjoenn, kontigentStatus, medlemStart) VALUES (?,?,?,?,?,?,?,?,?,?);";
$statement = $db->prepare($insertSQL);
$statement->bindValue(1, $this->fornavn);
$statement->bindValue(2, $this->etternavn);
$statement->bindValue(3, $this->adresse1 . "\n" . $this->adresse2);
$statement->bindValue(4, $this->postnummer);
$statement->bindValue(5, $this->mobilnummer);
$statement->bindValue(6, $this->epost);
$statement->bindValue(7, $this->dob->format("Y-m-d"));
$statement->bindValue(8, $this->kjoenn);
$statement->bindValue(9, $this->kontigentstatus);
$statement->bindValue(10, $this->medlem_siden->format("Y-m-d"));
echo $statement->queryString;
$statement->execute();
// var_dump($statement);
}
// '{$this->fornavn}', '{$this->etternavn}', '{$this->adresse1}\n{$this->adresse2}'
}
public function updateMemberRow(){
$db = getPdoConn();
$updateSQLValues = array();
foreach ($this->endret as $key => $value){
$updateSQLValues[] = "$value = ?";
}
$sql = "UPDATE Medlem SET ".implode(', ', $updateSQLValues);
$sql .= " WHERE medlemId = ?";
// $statement = $db->prepare($sql);
// LOOP
// $statement->bindParam()
}
}
// Caching av poststed
$poststed = array();
function hentPoststed($postnummer): string {
function hentPoststed($postnummer) {
global $poststed;
if(!$poststed[ $postnummer ]){
@ -72,5 +160,127 @@ function hentPoststed($postnummer): string {
}
}
return $poststed[$postnummer] ?? "Ukjent";
return $poststed[$postnummer] ?? false;
}
function hentMedlem($dbid){
return hentMedlemmer(null, null, $dbid)[$dbid];
}
function hentMedlemmer($perSide = 20, $side = 1, $medlemId = 0){
$sideStart = $side?($side-1)*$perSide:0;
$medlemmer = array();
$hentMedlemmerSQL = "
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
";
if($medlemId > 0){
$hentMedlemmerSQL .= " WHERE `medlemId` = ?";
}
else {
$hentMedlemmerSQL .= "ORDER BY etternavn, fornavn LIMIT $sideStart,$perSide";
}
try {
// Åpne databasetilkobling som definert
$db = getPdoConn();
// Prepare and execute statement
$statement = $db->prepare($hentMedlemmerSQL);
if($medlemId > 0){
$statement->bindValue(1,$medlemId);
}
$statement->execute();
// Fetchmode FETCH_ASSOC for å få med keys-verdiene
$statement->setFetchMode(PDO::FETCH_ASSOC);
$resultat = $statement->fetchAll();
foreach ($resultat as $row){
$medlem = new Medlem();
$medlem->dbid = $row['medlemId'];
$medlem->fornavn = $row['fornavn'];
$medlem->etternavn = $row['etternavn'];
$adresser = explode('\n', $row['adresse']);
$medlem->adresse1 = $adresser[0];
$medlem->adresse2 = $adresser[1] ?? '';
$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'] );
$medlemmer[$medlem->dbid] = $medlem;
}
}
catch (PDOException $e){
echo "SQL-feil: <br>\n".$e;
} finally {
$db = null;
return $medlemmer;
}
}
class Aktivitet {
public int $dbid;
public string $navn;
public string $beskrivelse;
public int $ansvarlig;
public ?DateTime $start = null;
public ?DateTime $slutt = null;
public function __construct($dbid, $navn, $beskrivelse, $ansvarlig, $start, $slutt){
$this->dbid = $dbid ?? 0;
$this->navn = $navn;
$this->beskrivelse = $beskrivelse;
$this->ansvarlig = $ansvarlig;
$this->start = $start ?? null;
$this->slutt = $slutt ?? null;
}
}
function hentAktivitet($id = false){
$aktiviteter = array();
$sql = "SELECT * FROM Aktivitet;";
if($id){
$sql = "SELECT * FROM Aktivitet WHERE aktivitetId = ?";
}
try {
$db = getPdoConn();
$stmt = $db->prepare($sql);
if($id){
$stmt->bindValue(1, $id);
}
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$res = $stmt->fetchAll();
foreach ($res as $row){
$start = DateTime::createFromFormat('Y-m-d H:i:s', $row['start']) ?? null;
$slutt = DateTime::createFromFormat('Y-m-d H:i:s', $row['slutt']) ?? null;
$aktiviteter[] = new Aktivitet(
$row['aktivitetId'],
$row['navn'],
$row['beskrivelse'],
$row['ansvarligId'],
$start,
$slutt
);
}
}
catch (PDOException $e){
echo "SQL-feil: <br>\n".$e;
}
finally {
$db = null;
}
if($id && count($aktiviteter) == 1){
return $aktiviteter[0];
}
return $aktiviteter;
}

View File

@ -17,58 +17,15 @@ include 'forberedelser.php';
<h2>Medlemsliste</h2>
<?php
// Tom matrise som skal holde Medlem-objekter.
$medlemmer = array();
// Sidetall, i tilfelle det er kjempemange medlemmer. (Standard 20 per side, side 1)
$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;
}
// Se funkjson i forberedelser.php
$medlemmer = hentMedlemmer($_GET['size'] ?? 20, $_GET['page'] ?? 1);
?>
</div>

View File

@ -1,8 +1,79 @@
<?php
include '../common.php';
include '../common.php';
include 'forberedelser.php';
ini_set('error_reporting', 1);
ini_set('display_errors',1);
$err = array();
$msg = array();
// Hent matrise med medlemmer fra forberedelser.php
$medlemmer = hentMedlemmer($_GET['size'] ?? 20, $_GET['page'] ?? 1);
if(isset($_GET['memberid'])){
$mid = $_GET['memberid'];
if(hentMedlem($mid) == 0){
$err[] = "Medlem ikke funnet.";
}
}
// Sjekker om det er et innsendt skjema (Redigert skjema)
if(!empty($_POST)){
if(!isset($_POST['bruker_id'])){
// NYTT MEDLEM
$medlem = new Medlem();
foreach ( Medlem::$stringNames as $name){
$medlem->{$name} = $_POST[$name];
}
$medlem->postnummer = (int) $_POST['postnummer'];
$medlem->dob = DateTime::createFromFormat('Y-m-d', $_POST['dob']);
$medlem->medlem_siden = DateTime::createFromFormat('Y-m-d', $_POST['medlem_siden']);
echo "Verified? ".($medlem->verifyMember()?"yes":"no")."<br>\n";
try {
echo "<pre>";
$medlem->persistMember();
echo "</pre>";
}
catch (InvalidArgumentException $e){
echo $e;
}
}
else {
$medlem = Medlem::getFromId($_POST['bruker_id']);
echo $medlem->fornavn." ".$medlem->etternavn."<br>\n";
foreach (Medlem::$stringNames as $felt){
echo "Oppdater $felt fra ".$medlem->{$felt};
if($medlem->set($felt, $_POST[$felt])){
echo " til ".$_POST[$felt];
}
echo "<br>\n";
}
foreach (Medlem::$intFields as $felt){
$medlem->set($felt, (int) $_POST[$felt]);
}
foreach (Medlem::$dateFields as $felt){
$medlem->set($felt, DateTime::createFromFormat('Y-m-d', $_POST[$felt]));
}
echo $medlem->fornavn." ".$medlem->etternavn."<br>\n";
echo "Medlem er ".($medlem->verifyMember()?"gyldig":"ugyldig")."<br>\n";
echo "Endrede verdier: ".implode(', ', $medlem->endret)."<br>\n";
echo "<br>\n";
echo "Medlem ikke oppdatert..<br>\n";
die();
}
}
?><!DOCTYPE html>
<html lang="no">
<head>
@ -14,19 +85,86 @@ include 'forberedelser.php';
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Medlemsliste</h2>
<h2>Registrering av nytt medlem</h2>
<?php
</div>
echo hentPoststed(4614)."<br>\n";
echo hentPoststed(4614)."<br>\n";
echo hentPoststed(4462)."<br>\n";
echo hentPoststed(4614)."<br>\n";
echo hentPoststed(4462)."<br>\n";
echo hentPoststed(4614)."<br>\n";
echo hentPoststed(4615)."<br>\n";
<div class="container">
<?php
if(!empty($err)){
foreach ($err as $e){
echo "<p class='error'>".$e."</p>\n";
}
}
if(!empty($msg)){
foreach ($msg as $m){
echo "<p class='suksess'>".$m."</p>\n";
}
}
?>
<form method="POST" action="index6_2.php">
<?php
// HVIS VI REDIGERER EN BRUKER ... (WIP)
if(isset($mid) && empty($err)){
foreach (array("fornavn", "etternavn", "adresse1", "adresse2", "postnummer", "poststed", "mobilnummer", "epost", "kjoenn", "interesser", "kursaktiviteter", "kontigentstatus") as $nkl){
$_POST[$nkl] = $_POST[$nkl] ?? $medlemmer[$mid]->{$nkl};
}
$_POST['dob'] = $_POST['dob'] ?? $medlemmer[$mid]->dob->format('Y-m-d');
$_POST['medlem_siden'] = $_POST['medlem_siden'] ?? $medlemmer[$mid]->medlem_siden->format("Y-m-d");
echo "<input type='hidden' name='bruker_id' value='$mid'>";
}
?>
<p>
<label>Fornavn:* <input type="text" name="fornavn" value="<?=$_POST['fornavn'] ?? '';?>"></label>
<label>Etternavn:* <input type="text" name="etternavn" value="<?=$_POST['etternavn'] ?? '';?>"></label>
</p>
<p>
<label>Adresselinje 1:* <input type="text" name="adresse1" value="<?=$_POST['adresse1'] ?? '';?>"></label><br>
<label>Adresselinje 2: <input type="text" name="adresse2" value="<?=$_POST['adresse2'] ?? '';?>"></label><br>
<label>Postnummer/Poststed:*
<input type="number" name="postnummer" min="0001" max="9999" value="<?=$_POST['postnummer'] ?? '';?>"><input type="text" name="poststed" value="<?=$_POST['poststed'] ?? '';?>">
</label>
</p>
<p>
<label>Mobilnummer: <input type="text" name="mobilnummer" value="<?=$_POST['mobilnummer'] ?? '';?>"></label><br>
<label>E-post:* <input type="text" name="epost" value="<?=$_POST['epost'] ?? '';?>"></label><br>
<label>Fødselsdato:* <input type="date" name="dob" value="<?=$_POST['dob'] ?? date('Y-m-d');?>"></label><br>
<label>
Kjønn:*
<select name="kjoenn">
<option value="0">-- Velg --</option>
<option <?=(@$_POST['kjoenn'] == "M"?SELECTED:'');?> value="M">Mann</option>
<option <?=(@$_POST['kjoenn'] == "F"?SELECTED:'');?> value="F">Kvinne</option>
<option <?=(@$_POST['kjoenn'] == "O"?SELECTED:'');?> value="O">Annet</option>
</select>
</label>
</p>
<p>
<label>Interesser:<br><textarea name="interesser"><?=$_POST['interesser'] ?? '';?></textarea></label>
</p>
<p>
<label>Kursaktiviteter:<br><textarea name="kursaktiviteter"><?=$_POST['kursaktiviteter'] ?? '';?></textarea></label>
</p>
<p>
<label>Medlem siden:* <input type="date" name="medlem_siden" value="<?=$_POST['medlem_siden'] ?? date('Y-m-d');?>"></label><br>
<label>
Kontigentstatus:*
<select name="kontigentstatus">
<option value="0">-- Velg --</option>
<option <?=(@$_POST['kontigentstatus'] == "BETALT"?SELECTED:'');?> value="BETALT">Betalt</option>
<option <?=(@$_POST['kontigentstatus'] == "IKKE_BETALT"?SELECTED:'');?> value="IKKE_BETALT">Ikke betalt</option>
</select>
</label>
</p>
<p>
<input type="submit" value="<?=(isset($mid)?"Rediger...":"Send inn...");?>">
</p>
</form>
</div>
</body>

BIN
modul6/index6_3-tom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

26
modul6/index6_3.php Normal file
View File

@ -0,0 +1,26 @@
<?php include '../common.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>Sikkerhetskopi</h2>
<p>I denne oppgaven skal det lagres en sikkerhetskopi av databasen. Denne sikkerhetskopien har jeg da tatt av alle tabellene vi har satt opp til prosjektet dette tidspunktet.</p>
<img src="index6_3.png" alt="ER-diagram" style="">
<p>Sikkerhetskopien er laget i phpMyAdmin.</p>
<p>Sikkerhetskopien er lagret i <a href="medlemsprosjekt.sql">medlemsprosjekt.sql</a></p>
<p>Deretter ble databasen tømt via DROP-spørringer.</p>
<img src="index6_3-tom.png" alt="Tom database" style="">
<p>Importen av databasen gikk fint igjen gjennom PMAs Import funksjon.</p>
<br><br><br>
</div>
</body>
</html>

BIN
modul6/index6_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

60
modul6/index6_4.php Normal file
View File

@ -0,0 +1,60 @@
<?php
include '../common.php';
include 'forberedelser.php';
ini_set('error_reporting', 1);
ini_set('display_errors',1);
?><!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>Aktiviteter</h2>
</div>
<?php
$aktiviteter = hentAktivitet();
if(!empty($aktiviteter)){ ?>
<div>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Navn</th>
<th>Beskrivelse</th>
<th>Ansvarlig</th>
<th>Aktivitetens start</th>
<th>Aktivitetens slutt</th>
</tr>
</thead>
<tbody>
<?php
foreach($aktiviteter as $aktivitet){
echo "<tr>\n";
echo " <td>".$aktivitet->dbid."</td>\n";
echo " <td>".$aktivitet->navn."</td>\n";
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 "</tr>\n";
}
?>
</tbody>
</table>
</div>
<?php } else { ?>
<?php } ?>
</body>
</html>

331
modul6/medlemsprosjekt.sql Normal file
View File

@ -0,0 +1,331 @@
-- phpMyAdmin SQL Dump
-- version 5.1.1
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Nov 17, 2021 at 01:24 PM
-- Server version: 10.6.5-MariaDB
-- PHP Version: 7.4.25
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `medlemsprosjekt`
--
-- --------------------------------------------------------
--
-- Table structure for table `Aktivitet`
--
CREATE TABLE `Aktivitet` (
`aktivitetId` int(11) NOT NULL,
`navn` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,
`beskrivelse` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT ' ',
`ansvarligId` int(11) NOT NULL,
`start` datetime NOT NULL,
`slutt` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Aktivitet`
--
INSERT INTO `Aktivitet` (`aktivitetId`, `navn`, `beskrivelse`, `ansvarligId`, `start`, `slutt`) VALUES
(1, 'Kino', 'Kinodag i kristiansand woho', 1, '2020-07-07 19:00:00', '2020-07-07 21:00:00'),
(2, 'Tur', 'Tur til kina', 1, '2021-12-07 19:00:00', '2021-07-07 21:00:00'),
(3, 'Turnering', 'Fotball Turnering', 1, '2022-07-07 19:00:00', '2022-07-07 21:00:00');
-- --------------------------------------------------------
--
-- Table structure for table `Bruker`
--
CREATE TABLE `Bruker` (
`brukerId` int(11) NOT NULL,
`epost` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`passord` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL,
`ckey` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ' ',
`ctime` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ' '
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Bruker`
--
INSERT INTO `Bruker` (`brukerId`, `epost`, `passord`, `ckey`, `ctime`) VALUES
(1, 'johbirk00@gmail.com', '$2y$10$btZKVjCywJL0v5vky/r8yeYf/H5zWkfzyGghygHZr0i4nZBGrc88i', '', '');
-- --------------------------------------------------------
--
-- Table structure for table `Interesse`
--
CREATE TABLE `Interesse` (
`interesseId` int(11) NOT NULL,
`navn` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Interesse`
--
INSERT INTO `Interesse` (`interesseId`, `navn`) VALUES
(2, 'Bading'),
(3, 'Dansing'),
(1, 'Fotball'),
(4, 'Grilling');
-- --------------------------------------------------------
--
-- Table structure for table `Interesse_register`
--
CREATE TABLE `Interesse_register` (
`medlemId` int(11) NOT NULL,
`interesseId` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Interesse_register`
--
INSERT INTO `Interesse_register` (`medlemId`, `interesseId`) VALUES
(1, 1),
(1, 2),
(2, 1),
(2, 3),
(3, 1),
(3, 3);
-- --------------------------------------------------------
--
-- Table structure for table `Medlem`
--
CREATE TABLE `Medlem` (
`medlemId` int(11) NOT NULL,
`fornavn` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,
`etternavn` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,
`adresse` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,
`postnummer` int(4) NOT NULL,
`mobilnummer` varchar(12) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`epost` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`dob` date NOT NULL,
`kjoenn` enum('M','F','O') COLLATE utf8mb4_unicode_ci NOT NULL,
`kontigentStatus` enum('BETALT','IKKE_BETALT') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'IKKE_BETALT',
`medlemStart` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Medlem`
--
INSERT INTO `Medlem` (`medlemId`, `fornavn`, `etternavn`, `adresse`, `postnummer`, `mobilnummer`, `epost`, `dob`, `kjoenn`, `kontigentStatus`, `medlemStart`) VALUES
(1, 'Johannes', 'Birkeland', 'Teian 6', 4462, NULL, 'johannesbi@uia.no', '2000-11-19', 'M', 'BETALT', '2019-11-11'),
(2, 'Per', 'Persen', 'Per Gaten', 4462, NULL, 'perper@uia.no', '2000-11-19', 'O', 'BETALT', '2019-11-11'),
(3, 'Lina', 'Ridley', 'En gate i krs', 4614, NULL, 'linaridley@uia.no', '2002-07-26', 'F', 'BETALT', '2019-11-11'),
(7, 'Eirik', 'Svag', 'Fergefjell\n', 4614, NULL, 'hei@padeg.no', '1996-01-18', 'M', 'BETALT', '2021-11-09'),
(8, 'Kai', 'Havn', 'Havnegata 1\n', 4606, NULL, 'kai@havn.no', '1905-01-01', 'O', 'BETALT', '2021-09-10');
-- --------------------------------------------------------
--
-- Table structure for table `Postnummer`
--
CREATE TABLE `Postnummer` (
`postnummer` int(4) NOT NULL,
`poststed` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Postnummer`
--
INSERT INTO `Postnummer` (`postnummer`, `poststed`) VALUES
(1337, 'Sandvika'),
(4462, 'Hovsherad'),
(4606, 'Kristiansand'),
(4614, 'Kristiansand');
-- --------------------------------------------------------
--
-- Table structure for table `Rolle`
--
CREATE TABLE `Rolle` (
`rolleId` int(11) NOT NULL,
`rolleNavn` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Rolle`
--
INSERT INTO `Rolle` (`rolleId`, `rolleNavn`) VALUES
(2, 'KURSANSVARLIG'),
(1, 'LEDER');
-- --------------------------------------------------------
--
-- Table structure for table `Rolle_register`
--
CREATE TABLE `Rolle_register` (
`medlemId` int(11) NOT NULL,
`rolleId` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Dumping data for table `Rolle_register`
--
INSERT INTO `Rolle_register` (`medlemId`, `rolleId`) VALUES
(1, 1),
(1, 2),
(2, 2);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `Aktivitet`
--
ALTER TABLE `Aktivitet`
ADD PRIMARY KEY (`aktivitetId`),
ADD KEY `ansvarligId` (`ansvarligId`);
--
-- Indexes for table `Bruker`
--
ALTER TABLE `Bruker`
ADD PRIMARY KEY (`brukerId`),
ADD UNIQUE KEY `epost` (`epost`);
--
-- Indexes for table `Interesse`
--
ALTER TABLE `Interesse`
ADD PRIMARY KEY (`interesseId`),
ADD UNIQUE KEY `navn` (`navn`);
--
-- Indexes for table `Interesse_register`
--
ALTER TABLE `Interesse_register`
ADD PRIMARY KEY (`medlemId`,`interesseId`),
ADD KEY `interesseId` (`interesseId`);
--
-- Indexes for table `Medlem`
--
ALTER TABLE `Medlem`
ADD PRIMARY KEY (`medlemId`),
ADD UNIQUE KEY `epost` (`epost`),
ADD KEY `postnummer` (`postnummer`);
--
-- Indexes for table `Postnummer`
--
ALTER TABLE `Postnummer`
ADD PRIMARY KEY (`postnummer`);
--
-- Indexes for table `Rolle`
--
ALTER TABLE `Rolle`
ADD PRIMARY KEY (`rolleId`),
ADD UNIQUE KEY `rolleNavn` (`rolleNavn`);
--
-- Indexes for table `Rolle_register`
--
ALTER TABLE `Rolle_register`
ADD PRIMARY KEY (`medlemId`,`rolleId`),
ADD KEY `rolleId` (`rolleId`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `Aktivitet`
--
ALTER TABLE `Aktivitet`
MODIFY `aktivitetId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT for table `Bruker`
--
ALTER TABLE `Bruker`
MODIFY `brukerId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT for table `Interesse`
--
ALTER TABLE `Interesse`
MODIFY `interesseId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
--
-- AUTO_INCREMENT for table `Medlem`
--
ALTER TABLE `Medlem`
MODIFY `medlemId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
--
-- AUTO_INCREMENT for table `Rolle`
--
ALTER TABLE `Rolle`
MODIFY `rolleId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- Constraints for dumped tables
--
--
-- Constraints for table `Aktivitet`
--
ALTER TABLE `Aktivitet`
ADD CONSTRAINT `Aktivitet_ibfk_1` FOREIGN KEY (`ansvarligId`) REFERENCES `Medlem` (`medlemId`);
--
-- Constraints for table `Interesse_register`
--
ALTER TABLE `Interesse_register`
ADD CONSTRAINT `Interesse_register_ibfk_1` FOREIGN KEY (`medlemId`) REFERENCES `Medlem` (`medlemId`),
ADD CONSTRAINT `Interesse_register_ibfk_2` FOREIGN KEY (`interesseId`) REFERENCES `Interesse` (`interesseId`);
--
-- Constraints for table `Medlem`
--
ALTER TABLE `Medlem`
ADD CONSTRAINT `Medlem_ibfk_1` FOREIGN KEY (`postnummer`) REFERENCES `Postnummer` (`postnummer`);
--
-- Constraints for table `Rolle_register`
--
ALTER TABLE `Rolle_register`
ADD CONSTRAINT `Rolle_register_ibfk_1` FOREIGN KEY (`medlemId`) REFERENCES `Medlem` (`medlemId`),
ADD CONSTRAINT `Rolle_register_ibfk_2` FOREIGN KEY (`rolleId`) REFERENCES `Rolle` (`rolleId`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;