Ik heb een klasse (evenement), met daarin de statische methode returnAllEvents. Het is de bedoeling dat deze methode een tabel uitleest en al de waarden van deze tabel returnt, met zo weinig mogelijk koppeling.
Hoe ik het nu gemaakt heb:
de klasse en de methode:
Zoals je ziet maak ik er per rij een array aan. Al deze arrays stop ik dan weer een verzamelings-array, en die return ik.
Het stukje code dat de methode aan roept:
Dit werkt, maar hier ben ik niet tevreden over. Ik vind dat er te veel koppeling is. Ik zou liever hebben dat de methode de rij-array keer per keer door gaf, op zo'n soort manier dus:
Het zou dus de bedoeling moeten zijn dat de while lus telkens de methode returnAllEvents() aanroept, deze geef de rij-array terug van rij1, het script verwerkt de array, daarna roept de while lus returnAllEvents() weer aan, nu moet deze methode de rij-array van rij2 terug geven, enz...
Ik heb zoiets proberen maken met onderstaande code, maar dat werkte niet zo goed:
En de aanroeping:
Dit werkte echter niet zoals ik gehoopt had, ik kreeg een oneindige lus die telkens de rij-array van de eerste rij 1 kreeg. Achter af gezien was dit natuurlijk heel logisch, maar ik wou het toch eens proberen
Mijn vraag is nu dus: Hoe kan ik mijn methode het beste programmeren? Ik wil zo weinig mogelijk koppeling, en een rij-array leek mij dan de mooiste oplossing. Als er betere manieren zijn wil ik die natuurlijk ook graag horen
Hoe ik het nu gemaakt heb:
de klasse en de methode:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| class evenement { public static function returnAllEvents() { $q = mysql_query("..."); while ($row = mysql_fetch_array($q)) { $lijst[] = $row; } return $lijst; } } |
Zoals je ziet maak ik er per rij een array aan. Al deze arrays stop ik dan weer een verzamelings-array, en die return ik.
Het stukje code dat de methode aan roept:
PHP:
1
2
3
4
5
| $lijst = evenement::returnAllEvents(); foreach($lijst as $rij_array) { //verwerking van de rij-array } |
Dit werkt, maar hier ben ik niet tevreden over. Ik vind dat er te veel koppeling is. Ik zou liever hebben dat de methode de rij-array keer per keer door gaf, op zo'n soort manier dus:
PHP:
1
2
3
4
| while($rij_array = evenement::returnAllEvents()) { //verwerking van de rij_array } |
Het zou dus de bedoeling moeten zijn dat de while lus telkens de methode returnAllEvents() aanroept, deze geef de rij-array terug van rij1, het script verwerkt de array, daarna roept de while lus returnAllEvents() weer aan, nu moet deze methode de rij-array van rij2 terug geven, enz...
Ik heb zoiets proberen maken met onderstaande code, maar dat werkte niet zo goed:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| class evenement { public static function returnAllEvents() { $q = mysql_query("..."); while ($row = mysql_fetch_array($q)) { return $row; } } } |
En de aanroeping:
PHP:
1
2
3
4
| while($rij_array = evenement::returnAllEvents()) { //verwerking van de rij_array } |
Dit werkte echter niet zoals ik gehoopt had, ik kreeg een oneindige lus die telkens de rij-array van de eerste rij 1 kreeg. Achter af gezien was dit natuurlijk heel logisch, maar ik wou het toch eens proberen
Mijn vraag is nu dus: Hoe kan ik mijn methode het beste programmeren? Ik wil zo weinig mogelijk koppeling, en een rij-array leek mij dan de mooiste oplossing. Als er betere manieren zijn wil ik die natuurlijk ook graag horen