Beste mensen,

Ik kan een overzicht geven van de inhoud (index.php), Ik kan een item toevoegen (add.php), wijzigen (edit.php) en verwijderen (delete.php).

Nu moet ik een interface bouwen, waarbij wij de tabel werknemers mee kunnen onderhouden.

Ik heb al een werknemerstabel aangemaakt:
De werknemerstabel ziet er als volgt uit:

ID numeriek a/i primaire sleutel
Naam varchar 50
Adres varchar 50
Postcode varchar 6 (of 7)
Plaats varchar 50
Telefoon varchar 10
Functie varchar 25

Nu is het de bedoeling dat ik een of meerdere php bestanden maak waarmee ik deze tabel kan onderhouden. Zou iemand mij hier mee kunnen helpen? Het mag ook allemaal in een tabel, dat maakt me niks uit.

Met vriendelijke groet,
je geeft zelf al aan dat je een overzicht kan geven, een werknemer kan wijzigen, aanpassen en verwijderen.
Maar wat versta je hier dan onder onderhouden?
- Ariën - op 28/01/2016 11:31:37

je geeft zelf al aan dat je een overzicht kan geven, een werknemer kan wijzigen, aanpassen en verwijderen.
Maar wat versta je hier dan onder onderhouden?


Hiermee bedoel ik dat ik een php bestand van werknemers kan zien, dat ik een overzicht heb van de naam van de werknemer, adres, eigenlijk zoals ik hierboven in de werknemerstabel heb aangegeven.

de add.php/delete.php dient voor het toevoegen of verwijderen van kopjes aan het menu op de website.

Ikzelf ben geen voorstander om alle acties on verschillende bestanden onder te verdelen. Je kan het beste een werknemers.php script maken, waarin je met een switch() in PHP de verschillende acties benoemt:


<?php
if(isset($_GET['actie'])) {
	switch($_GET['actie']) {
		case "add":
		// voeg hier je werknemer toe, bereikbaar onder werknemers.php?actie=add
		break;

		case "edit":
		// wijzig hier je werknemer, bereikbaar onder bijv. werknemers.php?actie=edit&id=42
		// controleer ook op het bestaan van $_GET['id'] met isset().
		break;

		case "delete":
		// verwijder hier je werknemer, bereikbaar onder bijv. werknemers.php?actie=delete&id=42
		// controleer ook op het bestaan van $_GET['id'] met isset(). Bij sterke voorkeur in de database markeren als 'verwijderd' (0 of 1).
		break;
	}
} else {
	// toon hier je lijst, die is dan bereikbaar via werknemers.php
}
?>
@Ariën, maar hoe verwerk je deze acties verder? Dat zijn toch ook weer acties (addProcess, editProcess)? En waar wordt een volledig en kloppend HTML-document uitgedraaid? Doe je dit in elke actie (helemaal) opnieuw? Ook is dit niet nodig bij de verwerking van een formulier - in die actie hoeft helemaal geen output geproduceerd te worden omdat je na afloop iemand toch meteen redirect (dit lijkt mij in ieder geval een verstandig plan).

Hier kan OOP uitkomst bieden door een sjabloon te maken voor pagina-opbouw en een soortement van "routing" voor je acties. Vervolgens maak je een class Medewerkers die extend van dit sjabloon zodat je geen dingen dubbel doet.

Een werknemers-script kan snel best lang worden, ik weet niet of een (super lang) switch-statement dan echt zo fijn werkt :/. Het leest toch een stuk fijner als je dit compartimenteert in aparte methoden volgens eerdergenoemd sjabloon. EDIT: zodat dit programmatisch ook echt aparte onderdelen omvat, in tegenstelling tot een switch-statement, wat toch één (spaghetti?)sliert is.
Thomas, de meesten hier weten dat jij een hoop ervaring met PHP hebt, en graag zelf op een hoog niveau met OOP werkt. Ik geef toe dat ik zelf ook veel met OOP-structuur werk, maar vergeet niet dat we hier met een beginner te maken hebben. Dit topic staat nota-bene zelfs in het 'Beginnen met PHP'-forum.

Daarom leg ik de lat niet te hoog. Met termen zoal routing, OOP, class en extenden, vrees ik mensen hier bang te zullen maken. Tenzij duidelijk is op welk niveau van PHP ze zitten.

Misschien handig om hier voortaan even rekening mee te houden. Het is hier PHPhulp en geen PHP-Pro-Hulp. ;-)
Dit is helemaal geen hoog niveau OOP, het is slechts enkele stappen verwijderd van de basisbeginselen van OOP. Het is waarschijnlijk niet eens OOP pur sang.

Ik gooi mensen zeker niet (zomaar) in het diepe, maar ben tegelijkertijd van mening dat je mensen niet (eindeloos) in het peuterbad moet houden.

Of een topicstarter de (zwem)les bij kan benen zal nog moeten blijken, je kunt dan altijd nog besluiten om gas terug te nemen.

Daarbij, als ik een voorbeeld geef als hier om wordt gevraagd, dan hoeft men deze initieel niet per definitie volledig te kunnen doorgronden, men moet enkel een zeker gevoel hebben hoe deze werkt en hoe je deze verder kunt gebruiken.

Om een auto te kunnen besturen hoef je ook niet te weten hoe een verbrandingsmotor werkt, als je uitlegt wat het stuur, de pedalen en versnellingsbak doen ben je al een heel eind.

Ik heb een déjà vu, hier hebben we het al eens eerder over gehad (alleen is het waarschijnlijk onmogelijk om dit terug te vinden met de huidige zoekfunctionaliteit).

Ik houd hier zeker rekening mee, en verwacht tegelijkertijd dat vragenstellers ook mondig genoeg zijn om aan te geven wanneer ze (en wat) ze (dan) iets niet begrijpen. Ik doe alleen op voorhand geen aannames over het niveau, maar doe het, naar mijn huidige kennis en kunde, beste voorstel wat ik kan verzinnen.
Begrijpelijk, maar we willen mensen hier niet wegjagen met moeilijke theorie. Het is niet voor niets een 'beginnersforum' hier. OO(P) vergt een flinke leercurve, en men moet er ook voor open staan. Dan is het beste om een beginnende gebruiker af te tasten of die daar voor bereid is, in plaats van met woorden als 'routing' te spreken.
Zie het in ieder geval niet als een sneer naar jouw toe.

Tot zover mijn mening verder waar ik blij blijf.
Ik ben nu net een paar dagen bezig met PHP, dus heb eigenlijk nog geen flauw idee hoe alles werkt. Ik heb door middel van hulp het voor elkaar gekregen om die menu's zo toe te voegen en eventueel laten verwijderen en aanpassen.
Het fijnste zou zijn, om alles in een php bestand te plaatsen zodat ik een simpel scherm krijg waar ik dus werknemers kan toevoegen en eventuele credentials aan te passen, zoals ik die heb aangemaakt in de werknemerstabel.

Ik weet niet of dit mogelijk is, of dat scripting zoals hier boven daar de makkelijkste manier voor is. Ik snap dat ik later iets moeilijker moet gaan denken, maar voor nu doe ik het graag op de simpelste manier.

@Ariën
Dit is niet eens een discussie meer want je blijft hangen in je aannames over:
- wat ik bedoel
- wat het niveau van de topicstarter is
- wat te moeilijk of te makkelijk zou zijn voor wie dan ook, zonder ook maar één regel code te hebben gezien

Tenzij je weet hoe ik "routing" wil toepassen kun je niet claimen dat dit te moeilijk zou zijn. Hetzelfde geldt voor OOP, dit kent vele verschillende moeilijkheidsniveaus.

Het lijkt mij ook de verkeerde instelling om mee te geven aan beginners: al opgeven voordat je uberhaupt iets geprobeerd hebt.

Als de topicstarter het heeft over "(gebruikers)interface" en een database-tabel die redeljk hout snijdt (behalve wellicht het ontbreken van een e-mailadres) dan denk ik niet dat deze gillend wegrent als ik het heb over "routing". Ik durf te wedden dat deze tot op zekere hoogte wel kan doorgronden wat deze abstracte term in zou kunnen houden, en dat is al genoeg om een begin te maken.
Met de structuur die ik heb gegeven zou je een flinke stap kunnen maken op de makkelijke manier.
Je moet dan zelf de lay-out schrijven waarin je dan de gebruikers kan beheren.

Reageren