Ik gebruik een eigen geschreven klasse om vanuit PHP data uit een MSSQL-databse te trekken en hier vervolgens tabellen van te bakken.
Vervolgens komt daar een fancy HTML-table uitgerold; mijn class pakt in dit geval ID, Surname en Username uit de tabel Users en propt dit in een array. Vervolgens wordt de array geoutput en komen als column headers ID, Achternaam en Gebruikersnaam boven de tabel te staan. Soms wil ik echter een bewerking op de data doen en die geef ik dan in de query al mee.
In dit laatste voorbeeld voeg ik dus Surname + Firstname samen als Fullname, so far so good. Nu loop ik echter tegen cases aan waarbij wat uitgebreidere bewerking op de outputdata wil doen en ik wil dat graag 'on the fly' door PHP laten doen. Maar hoe doe ik dit? Ik denk aan zoiets:
Nu is de grote vraag, hoe vang ik dit aan? Ik heb het getest door een simpele global function te schrijven en deze direct aan te roepen in de class, dat lukt maar ik zit nog met het probleem hoe ik de 'functionName' variabel kan meegeven om vervolgens in de class zelf de juiste functie uit te voeren. Ik ben het spoor even helemaal bijster want ik weet niet goed ik dit slim kan aanpakken en of ik dit überhaupt slim aanpak zo.
Kan iemand mij in de juiste richting sturen?
PHP: Voorbeeld aanroepen class DataSet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $userlist = new DataSet(array( "select" => array( "ID" => "ID", "Achternaam" => "Surname", "Postcode" => "Zipcode", ), "from" => "dbo.Users", "where" => "Group = 1", "order by" => "Surname ASC", "pagination" => true, "debug" => false, "icon" => true, )); echo $userlist->outputTable(); |
Vervolgens komt daar een fancy HTML-table uitgerold; mijn class pakt in dit geval ID, Surname en Username uit de tabel Users en propt dit in een array. Vervolgens wordt de array geoutput en komen als column headers ID, Achternaam en Gebruikersnaam boven de tabel te staan. Soms wil ik echter een bewerking op de data doen en die geef ik dan in de query al mee.
PHP: Voorbeeld stringconcat SQL
1
2
3
4
5
6
7
8
9
| $userlist = new DataSet(array( "select" => array( "ID" => "ID", "Volledige Naam" => "(Surname + ', ' + Firstname) AS Fullname", "Postcode" => "Zipcode", ), ... )); echo $userlist->outputTable(); |
In dit laatste voorbeeld voeg ik dus Surname + Firstname samen als Fullname, so far so good. Nu loop ik echter tegen cases aan waarbij wat uitgebreidere bewerking op de outputdata wil doen en ik wil dat graag 'on the fly' door PHP laten doen. Maar hoe doe ik dit? Ik denk aan zoiets:
PHP: Edit de data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| // functie maken om inputdata om te katten naar juiste outputdata function searchCity($postcode){ // Plaatsnaam ophalen op basis van postcode return $city; } $userlist = new DataSet(array( "select" => array( "ID" => "ID", "Volledige Naam" => "(Surname + ', ' + Firstname) AS Fullname", "Plaatsnaam" => "Zipcode", ), ... )); // Aan class meegeven dat ik uit mijn data-array $row[n]['Plaatsnaam'] // (Plaatsnaam is dus gevuld met de postcode) // in de functie searchCity wil stoppen en de output hiervan // weer in $row[n]['Plaatsnaam'] wil stoppen... $userlist->editData("Plaatsnaam","searchCity"); echo $userlist->outputTable(); |
Nu is de grote vraag, hoe vang ik dit aan? Ik heb het getest door een simpele global function te schrijven en deze direct aan te roepen in de class, dat lukt maar ik zit nog met het probleem hoe ik de 'functionName' variabel kan meegeven om vervolgens in de class zelf de juiste functie uit te voeren. Ik ben het spoor even helemaal bijster want ik weet niet goed ik dit slim kan aanpakken en of ik dit überhaupt slim aanpak zo.

[ Voor 3% gewijzigd door Harrie_ op 24-10-2017 17:09 ]
Hoeder van het Noord-Meierijse dialect