Startup for PHP Assignment
  • PHP 95.1%
  • CSS 4.9%
Find a file
2026-10-21 16:12:24 +02:00
.gitignore Seed 2026-09-16 08:50:45 +02:00
LICENSE Initial commit 2026-09-16 06:44:50 +00:00
PHPApplikation.php Update Speicalchars 2026-10-21 16:12:24 +02:00
README.md update readme 2026-10-06 11:53:08 +02:00
style.css La till komplex tabell med radlayout 2026-09-29 18:30:20 +02:00

PHP-applikation

Applikationen är skapad för grupp E och utgår från rollen Handläggare. Handläggaren ska bland annat kunna hantera personer, observationer och incidenter.

Requirements

  • Applikationen ska använda självrefererande formulär.
  • Applikationen ska visa registrerade personer i en HTML-tabell.
  • Handläggaren ska kunna välja en incident och se incidentens observationer.
  • En person kan rapportera flera observationer.
  • En observation kan rapporteras av flera personer.
  • PersonObservation kopplar personer till de observationer som de har rapporterat.
  • Samma person får inte kopplas till samma observation mer än en gång.

Enkla tabeller

Applikationen visar registrerade personer genom att hämta information direkt från tabellen Person. Informationen visas i en HTML-tabell med person-ID, namn och kodnamn. Tabellen använder ingen join.

Applikationen använder även proceduren GetIncidentObservations. Handläggaren anger ett incidentnummer i ett självrefererande formulär och proceduren hämtar de observationer som tillhör incidenten. Resultatet visas i en HTML-tabell och innehåller observations-ID, datum, säkerhet, grad och ansvarig handläggare.

Komplex tabell – radlayout

Jag har skapat en komplex tabell som visar incidenter och deras observationer. Informationen hämtas från tabellerna Incident och Observation med en left join på IncidentNumber.

Jag använder radlayout eftersom jag tillhör grupp E. Varje incident visas som en rad i huvudtabellen. I den sista kolumnen finns en nästlad tabell som visar observationerna som tillhör incidenten. Det gör det möjligt för handläggaren att se incidentens grundläggande information och tillhörande observationer på samma ställe.

En left join används för att även kunna visa en incident som ännu inte har några observationer.

Requirement

  • Handläggaren ska kunna se en incident och dess tillhörande observationer.

Sökning och filtrering med dropdown

Jag har lagt till sökning efter observationer genom ett självrefererande formulär. Handläggaren anger ett incidentnummer och proceduren GetIncidentObservations hämtar de observationer som tillhör incidenten. Resultatet visas i en HTML-tabell.

Jag har även lagt till en dropdown för att filtrera den komplexa tabellen efter region. Regionerna hämtas från databasen och när handläggaren väljer en region visas endast incidenterna i den regionen med sina tillhörande observationer. Alternativet ”Alla regioner” visar samtliga incidenter.

Requirements

  • Handläggaren ska kunna söka efter observationer med ett incidentnummer.
  • Handläggaren ska kunna filtrera incidenter och deras observationer efter region med en dropdown.

Uppdatering av databasen – procedur, INSERT och UPDATE

Jag har lagt till tre funktioner som ändrar information i databasen. Handläggaren kan registrera en ny person genom proceduren RegisterPerson, uppdatera en persons namn och kodnamn med UPDATE samt koppla en person till en observation med INSERT i tabellen PersonObservation.

Separata dropdowns används för att välja vilken person som ska uppdateras och vilken person och observation som ska kopplas ihop. Dessa är skilda från regionfiltreringen i steg 5.

Registrerade och uppdaterade personer visas i persontabellen. Kopplingarna visas i en egen tabell med person-ID, namn, observations-ID och datum. Alla tre funktionerna använder självrefererande formulär och förberedda SQL-anrop med parametrar.

Requirements

  • Handläggaren ska kunna registrera en person genom en procedur.
  • Handläggaren ska kunna uppdatera en persons namn och kodnamn.
  • Handläggaren ska kunna koppla en person till en observation.
  • Dropdowns ska användas som parametrar vid databasändringar.
  • Resultaten av databasändringarna ska vara synliga i applikationen.

Ej färdigt

Jag är medveten om att två krav ännu inte är uppfyllda i databasens behörigheter. Handläggaren saknar INSERT på tabellen Incident, trots att rollen ska kunna skapa incidenter. Användaren har också SELECT på hela databasen, vilket ger större läsbehörighet till agentinformation än kraven tillåter. Behörigheterna skulle därför behöva kompletteras och begränsas för att motsvara handläggarens arbetsuppgifter.