We gaan een pagina maken waar je film gegevens kan aanpassen. We werken hierbij met één php pagina met twee formulieren. Ons bestand gaat update_film.php heten.
Om een film aan te passen moeten een aantal stappen worden genomen. Je moet eerst een film selecteren die je wilt aanpassen. Daarna moet je de huidige gegevens van de film tonen. En als laatste moet je de gegevens in de database aanpassen.
In je PHP bestand is de volgorde van deze 3 stappen echter anders
Om een selectbox te maken moet je een query doen op de film database die alle films ophaalt.
Daarna moeten alle films in een option veld binnen je selectbox komen te staan
Bovenstaande code maakt een selectbox. We geven als 'name' de primaire sleutel van de tabel mee, in dit geval filmnr. De option velden zijn nu hard gecodeerd. Deze moeten natuurlijk afkomstig zijn uit de database. Zodat als er een nieuwe film wordt toegevoegd deze ook meteen te selecteren is. Voeg boven aan de pagina include "connect_film.php"; toe om verbinding te maken met de database.
In bovenstaande code worden eerst alle films opgehaald. Daarna worden alle rijen doorlopen en voor elke rij wordt een echo gedaan die het <option> veld op het scherm schrijft.
Als je script error maakt binnen een selectbox dan komen de foutmeldingen vaak niet op je scherm. Je kan dan de fout wel opsproren om de bron van de HTML pagina op te vragen (gebruik Chrome met rechtermuis)
We hebben nu een selectbox met alle films erin voeg een button toe ' Selecteer' aan het formulier
Zorg ervoor dat de button een naam heeft dat is later handig om onderscheidt te maken tussen de verschillende buttons op de pagina.
We gaan nu een formulier maken waar je de gegevens van de geselecteerde film te zien krijgt.
In het formulier willen we de huidige filmgegevens tonen. Deze moeten dus even opgehaald worden uit de database.
Om SQL-injecties te voorkomen dien je het verstuurde filmnr te voorzien van escape characters. Daarvoor is een functie. GEBRUIK DIT ALTIJD ALS JE EEN VERSTUURDE PARAMETER IN EEN QUERY GAAT INVULLEN.
We voeren de query uit en het resultaat zetten we in $row
We kunnen nu $row['titel'] bijvoorbeeld gebruiken om de filmtitel te tonen.
In het formulier willen we graag de gegevens van de geselecteerde film voordrukken, dat kan met
Op de plaats van 'value' gaan we naar PHP toe en doen we een echo van de titel. De titel van de film zal dan worden getoond in het tekstveld van het formulier.
In het formulier hierboven zijn alleen titel en tijdsduur opgenomen. Hier kan je natuurlijk de overige velden van films aan toevoegen. Belangrijk is dat je ook de primaire sleutel in het formulier plaatst zodat deze ook mee wordt verstuurd. Hierboven is filmnr als 'hidden' veld opgenomen. De gebruiker krijgt het filmnr dan niet te zien, maar wordt wel meegstuurd.
Wanneer je het filmnr wel wilt tonen, maar niet wilt dat de gebruiker het kan aanpassen zou je ook onderstaande optie kunnen gebruiken:
Boven aan de pagina kan nu de update van de film gedaan worden.
Voordat je de update gaat doen is het vaak handig om te kijken wat er allemaal wordt verstuurd.
Deze functie schrijft op het scherm wat er allemaal in $_POST zit. Mocht dit leeg zijn of onbreken er gegevens dan moet je nog even goed kijken naar je update formulier.
De update willen we alleen uitvoeren als er iets verstuurd is, dus we starten met