128 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| class Teamtable
 | |
| {
 | |
|     public PDO $dbh;
 | |
| 
 | |
|     public array $emptyTeamTemplate = [
 | |
|         'LagNavn'    => 'NN',
 | |
|         'Bedrift'    => 'NN',
 | |
|         'Kortnummer' => 'NN',
 | |
|         'Lagleder'   => 'NN',
 | |
|         'Telefon'    => 0,
 | |
|         'Deltagere'  => 0, 
 | |
|         'Runder'     => 0
 | |
|     ];
 | |
| 
 | |
|     public function __construct(Database $database)
 | |
|     {
 | |
|         $this->dbh = $database->conn;
 | |
|     }
 | |
| 
 | |
|     public function getTable(): array
 | |
|     {
 | |
|         $sth = $this->dbh->query('SELECT * FROM lagtabell');
 | |
|         return $sth->fetchAll(PDO::FETCH_ASSOC);
 | |
|     }
 | |
| 
 | |
|     public function deleteTeamByID(int $LagID): void
 | |
|     {
 | |
|         $sth = $this->dbh->prepare('DELETE FROM lagtabell WHERE LagID = ?');
 | |
|         $sth->execute([$LagID]);
 | |
|     }
 | |
| 
 | |
|     public function getTeamByID(int $LagID) # Mixed, array if exists, false if not
 | |
|     {
 | |
|         $sth = $this->dbh->prepare('SELECT * FROM lagtabell WHERE LagID = ?');
 | |
|         $sth->execute([$LagID]);
 | |
|         return $sth->fetch(PDO::FETCH_ASSOC);
 | |
|     }
 | |
| 
 | |
|     // why this is so long who cares???
 | |
|     public function updateTeamByID(
 | |
|         int $id,
 | |
|         string $LagNavn,
 | |
|         string $Bedrift,
 | |
|         string $Kortnummer,
 | |
|         string $Lagleder,
 | |
|         int $Telefon,
 | |
|         string $Deltagere,
 | |
|         int $Runder
 | |
|     ): void
 | |
|     {
 | |
|         $sth = $this->dbh->prepare(
 | |
|             'UPDATE lagtabell SET LagNavn = ?, Bedrift = ?, Kortnummer = ?, Lagleder = ?, Telefon = ?, Deltagere = ?, Runder = ? WHERE LagID = ?'
 | |
|         );
 | |
|         $sth->execute([$LagNavn, $Bedrift, $Kortnummer, $Lagleder, $Telefon, $Deltagere, $Runder, $id]);
 | |
|     }
 | |
| 
 | |
|     public function addEmptyTeam(): int
 | |
|     {
 | |
|         $sth = $this->dbh->prepare(
 | |
|             'INSERT INTO lagtabell (LagNavn, Bedrift, Kortnummer, Lagleder, Telefon, Deltagere, Runder) VALUES (?, ?, ?, ?, ?, ?, ?)'
 | |
|         );
 | |
| 
 | |
|         $template = $this->emptyTeamTemplate;
 | |
|         $template = [
 | |
|             $template['LagNavn'],
 | |
|             $template['Bedrift'],
 | |
|             $template['Kortnummer'],
 | |
|             $template['Lagleder'],
 | |
|             $template['Telefon'],
 | |
|             $template['Deltagere'],
 | |
|             $template['Runder'],
 | |
|         ];
 | |
|         $sth->execute($template);
 | |
|         return $this->dbh->lastInsertId();
 | |
|     }
 | |
| 
 | |
|     // Check if team is empty by comparing it to the template
 | |
|     public function isEqualEmptyTemplate(array $team): bool
 | |
|     {
 | |
|         $template = $this->emptyTeamTemplate;
 | |
|         $equal = FALSE;
 | |
|         foreach ($team as $key => $value) {
 | |
|             if (!isset($template[$key])) {
 | |
|                 continue;
 | |
|             }
 | |
|             if ($template[$key] !== $team[$key]) {
 | |
|                 $equal = FALSE;
 | |
|                 break;
 | |
|             }
 | |
|             $equal = TRUE;
 | |
|         }
 | |
|         return $equal;
 | |
|     }
 | |
| 
 | |
|     // Return true if team exists, false if not
 | |
|     public function insert(string $cardnumber): bool 
 | |
|     {
 | |
|         $sth = $this->dbh->prepare('SELECT * FROM lagtabell WHERE Kortnummer = ?');
 | |
|         $sth->execute([$cardnumber]);
 | |
| 
 | |
|         $row = $sth->fetch(PDO::FETCH_ASSOC);
 | |
|         if ($row)
 | |
|         {
 | |
|             // Team exists, insert into time table
 | |
|             $sth = $this->dbh->prepare('INSERT INTO tidtabell (LagID) VALUES (?)');
 | |
|             $sth->execute([$row['LagID']]);
 | |
|             return TRUE;
 | |
|         }
 | |
|         // Team does not exist, lets create it 
 | |
|         $sth = $this->dbh->prepare(
 | |
|             "INSERT INTO `lagtabell` (`LagNavn`, `Bedrift`, `Kortnummer`, `Lagleder`, `Telefon`, `Deltagere`, `Runder`) VALUES (?, ?, ?, ?, ?, ?, ?)"
 | |
|         );
 | |
|         $template = $this->emptyTeamTemplate;
 | |
|         $template = [
 | |
|             $template['LagNavn'],
 | |
|             $template['Bedrift'],
 | |
|             $cardnumber,
 | |
|             $template['Lagleder'],
 | |
|             $template['Telefon'],
 | |
|             $template['Deltagere'],
 | |
|             $template['Runder'],
 | |
|         ];
 | |
|         $sth->execute($template);
 | |
|         return FALSE;
 | |
|     }
 | |
| } |