Hallo devvers, daar ben ik weer.
Ik wil de inhoud van een tabel opvragen en laten zien op een webpagina. Dat gaat uiteraard vrij makkelijk op de onderstaande manier:
Allemaal leuk en aardig, maar ik heb geen zin om dit heel vaak handmatig te moeten kopiëren voor andere tabellen, want dat kost veel tijd en m'n code wordt dan onoverzichtelijk.
Daarom wil ik een stukje code schrijven dat het resultaat van een query in html uitspuugt, zonder dat ik de kolomnamen handmatig moet typen. De kolomnamen van de query in html uitspugen lukt me al:
Het probleem is echter dat niet elke tabel hetzelfde aantal kolommen heeft, dus zat ik er aan te denken om het aantal kolommen te tellen d.m.v. de volgende query:
en dit aantal dan te gebruiken om een for-loop te bouwen die het volgende genereert binnen de while-loop die bovenaan in deze post staat:
Iets zegt me echter dat ik te complex bezig ben en dat dit veel makkelijker kan. Ik heb gezocht en geprobeerd, maar kan nergens een voorbeeld vinden. Wie weet er een betere oplossing?
OOP en PDO is voor mij op dit moment nog een brug te ver, dus een dergelijke oplossing is voor mij moeilijker te doorgronden.
Ik wil de inhoud van een tabel opvragen en laten zien op een webpagina. Dat gaat uiteraard vrij makkelijk op de onderstaande manier:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <div class="floatleftpad"><table> <tr> <th>ID</th> <th>Name</th> <th>Phone number</th> <th>Email address</th> </tr> <?php $result = execute("SELECT * FROM agent ORDER BY first_name"); /* Functie execute() voert de query uit en returnt het resultaat van de query */ while($row = mysqli_fetch_array($result)) { echo '<tr>'; echo '<td>' . $row['id'] . '</td>'; echo '<td>' . $row['first_name'] . ' ' . $row['last_name'] . '</td>'; echo '<td>' . $row['phone_number'] . '</td>'; echo '<td>' . $row['email_address'] . '</td>'; echo '</tr>'; } </table> </div> ?> |
Allemaal leuk en aardig, maar ik heb geen zin om dit heel vaak handmatig te moeten kopiëren voor andere tabellen, want dat kost veel tijd en m'n code wordt dan onoverzichtelijk.
Daarom wil ik een stukje code schrijven dat het resultaat van een query in html uitspuugt, zonder dat ik de kolomnamen handmatig moet typen. De kolomnamen van de query in html uitspugen lukt me al:
PHP:
1
2
3
4
5
| <?php while ($fieldinfo = mysqli_fetch_field($result)) { echo $fieldinfo->name; } ?> |
Het probleem is echter dat niet elke tabel hetzelfde aantal kolommen heeft, dus zat ik er aan te denken om het aantal kolommen te tellen d.m.v. de volgende query:
SQL:
1
2
3
4
| SELECT count(*) FROM information_schema.columns WHERE table_name = 'insertTableNameHere'; ?> |
en dit aantal dan te gebruiken om een for-loop te bouwen die het volgende genereert binnen de while-loop die bovenaan in deze post staat:
PHP:
1
2
3
4
5
6
7
8
9
| <?php echo '<tr>'; echo '<td>' . $row[0] . '</td>'; echo '<td>' . $row[1] . '</td>'; echo '<td>' . $row[2] . '</td>'; echo '<td>' . $row[3] . '</td>'; echo '<td>' . $row[4] . '</td>'; echo '</tr>'; ?> |
Iets zegt me echter dat ik te complex bezig ben en dat dit veel makkelijker kan. Ik heb gezocht en geprobeerd, maar kan nergens een voorbeeld vinden. Wie weet er een betere oplossing?
OOP en PDO is voor mij op dit moment nog een brug te ver, dus een dergelijke oplossing is voor mij moeilijker te doorgronden.