Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken indien nodig. In de vorige les hebben we een pagina aangemaakt die we gaan gebruiken om gegevens in te voeren in de database. Een eenvoudig CMS biedt steeds 3 mogelijkheden. Het invoeren van gegevens, het aanpassen of updaten van gegevens en het verwijderen van de gegevens. Deze les gaan we een formulier aanmaken voor het aanpassen van de gegevens. Om deze functionaliteit te starten maken we gebruik van het invoer formulier. We gaan deze pagina deels hergebruiken en aanpassen om deze te gebruiken voor het aanpassen van de gegevens. We gaan het formulier hergebruiken. Wanneer een gebruiken een bericht wil aanpassen zullen we een pagina genereren, met het formulier, waar reeds de gegevens ingevuld zijn. Op deze manier geven we de gebruiker onmiddellijk de mogelijkheid om de aanpassingen in te geven. Na het verzenden van het formulier, zorgen we ervoor dat de gegevens aangepast worden in de database.
Aanmaken van het formulier voor het aanpassen van de berichten. We maken een nieuwe pagina en noemen deze bericht_updaten.php We gaan het formulier hergebruiken wat we gemaakt hebben om gegevens toe te voegen in de database. Wanneer de gebruiken de optie neemt om gegevens aan te passen kunnen we dit formulier tonen en onmiddellijk gaan we de gegevens tonen in het formulier. Op deze manier kan de gebruiker deze makkelijk aanpassen en kunnen deze snel opnieuw aangepast worden in de database.
Code voor het formulier.
Hier komen de gekende stappen weer terug! Om de gegevens te kunnen tonen in het formulier moeten we een connectie maken met de database en de juiste gegevens selecteren. De database zal ons de gevraagde gegevens terugsturen en vervolgens kunnen we deze afdrukken in het formulier.
Situatie omschrijving. De pagina met het overzicht van de berichten geeft ons de mogelijkheid om elk gegeven aan te passen of te verwijderen (dit is voor de volgende les) Overzicht pagina:
Wij hebben verschillende berichten in onze database. Elk bericht specifiek heeft een link gekregen om het desbetreffende bericht aan te passen of te verwijderen uit de database. Elke record in onze database is uniek. Dit is immers een standaard regel, alle gegevens moeten uniek te identificeren zijn in de database. Om deze gegevens uniek te maken gebruiken we de velden “naam_id”, in onze oefendatabase is dit het veld “bericht_id”. De linken geplaatst op de overzicht pagina, geven de nummer van het bericht mee dat we willen aanpassen. Code voorbeeld:
In de url geven we een parameter mee, deze hebben we nummer genoemd. Elk bericht heeft een unieke nummer in de database. Deze nummer is de nummer die we ingesteld hebben voor het veld bericht_id. Op deze manier kunnen we gaan bepalen welk bericht uit de database moet geselecteerd worden. Deze gegevens gaan we dan afdrukken in ons formulier.
Overzicht van de code in php:
Wanneer we de 2 onderstaande linken “bericht aanpassen” en “bericht verwijderen” bekijken hebben we hetzelfde:
bericht aanpassen bericht verwijderen Je ziet hier duidelijk dat we het id veld gebruiken en in de url deze nummer doorgeven om op deze manier het juiste bericht te kunnen selecteren. Op deze manier gaan we er dus voor zorgen dat we het correcte bericht kunnen gaan ophalen in de database om deze aan te passen indien nodig. Ook gaan we op deze manier het juiste bericht selecteren in de database om de gegevens eventueel te verwijderen.
Selecteren van de gegevens.
We gaan de nummer uit de url halen, dit doen we met $_GET[‘nr’]. We hebben hier een variabele aangemaakt, deze hebben we de naam $nr gegeven. Hierin plaatsen we de nummer die ons doorgestuurd werd via de url. Nu kunnen we een specifieke query uitvoeren op de database. We selecteren de gegevens in de tabel berichten, waar de nummer overeenkomt met de nummer die we uit de url gehaald hebben. Maw, de nummer van het bericht dat we in dit geval willen aanpassen. $q_select_berichten = mysql_query(“select * from berichten where bericht_id = $nr”);
We halen deze gegevens binnen als een array: $row = mysql_fetch_array ($q_select_berichten);
Vervolgens kunnen we nu deze gaan afdrukken op de pagina. We moeten deze echter gaan afdrukken in het formulier. We gaan de code voor het formulier opnieuw gaan gebruiken. In het
attribuut “value” van onze formulier elementen, gaan we de geselecteerde gegevens van de database afdrukken.
Je ziet dat we in onze html code, overal stukjes php code, met een echo plaatsen. Op deze manier gaan we de titel, korte omschrijving en het bericht laten afdrukken in ons formulier. NOTA: Deze methode gaan we continu hergebruiken, voor het updaten en deleten van gegevens in een database. Steeds gaan we de unieke nummer van de record doorgeven met een link of hidden field in een formulier. Op deze manier kunnen we ALTIJD de juiste gegevens selecteren en deze gaan hergebruiken om deze aan te passen of te verwijderen in de database!
Verwerken van de gegevens. De variabele ‘bericht_id’ hebben we gebruikt om de juiste gegevens te tonen in het formulier, zodat de gebruiker deze makkelijk kan aanpassen. Deze variabele gaan we echter opnieuw moeten gebruiken om ervoor te zorgen dat we de juiste gegevens in de database gaan updaten. Voor het updaten van de gegevens in de database gaan we een nieuwe pagina aanmaken, “update_bericht.php”. Deze pagina zal ervoor zorgen dat de juiste gegevens aangepast worden en zal ons een melding geven dat de gegevens aangepast werden. Deze melding kunnen we best standaard toevoegen. Vanuit een standpunt van usability is het goed om de gebruiker steeds te laten weten dat de handelingen uitgevoerd zijn. We gaan ons formulier met de aangepaste gegevens doorsturen naar de pagina ‘update_bericht.php’. Code van het formulier.
In de action van het formulier vullen we de pagina in waar de al dan niet aangepaste gegevens naar verzonden worden. Je ziet hier ook een hidden field (regel 2). Deze is erg belangrijk. Om de juiste gegevens in de database te overschrijven moeten we weer kunnen doorgeven, welke record exact overschreven moet worden. Om deze te kunnen selecteren gaan we weer de unieke nummer, of het id veld gebruiken. Een hidden field in een formulier is niet zichtbaar voor de gebruiker, maar we gaan dit veld gebruiken om weer het “bericht_id” door te geven.
Updaten van gegevens. Update_bericht.php.
Hier ook weer, alle stappen moeten herhaald worden. Het openen van de database, opvragen van gegevens, query aanmaken, query uitvoeren, afsluiten van de database connectie. 1. We halen alle nodige gegevens binnen. Het bericht_id, de titel, de korte omschrijving en het bericht. 2. We stellen een query samen voor het updaten van de gegevens
3. We voeren de query uit 4. We drukken een melding af dat de gegevens aangepast werden en geven een link terug naar de overzicht pagina 5. We sluiten de database connectie terug.