Beste tweakers,
Ik ben bezig met php te doorgronden en ben ondertussen bezig met een simpele testsite gekoppeld met een MySQL-database. Ik moet nu zo vaak queries uitvoeren, dat ik er een functie voor wil maken, zodat ik niet elke keer de hele functie moet typen, maar gewoon de functie kan aanroepen.
Dit is de situatie nu:
Dit is mijn poging tot het maken van een funtie:
Hoewel het goed gaat/lijkt te gaan, heb ik er zo m'n bedenkingen bij. Ik sluit de connectie met de database nog voordat ik in regel 22 verder ga met mysqli_fetch_array($result). Mag dat? Kan dat? (schijnbaar wel) Hoe kan dat netter/beter?
Daarnaast vraag ik me af of ik misschien code teveel heb geschreven. Ik heb het vermoeden dat ik teveel constantes definieer en dat ik een regel code teveel heb getypt. Hoe kan dit netter/beter?
Ik ben bezig met php te doorgronden en ben ondertussen bezig met een simpele testsite gekoppeld met een MySQL-database. Ik moet nu zo vaak queries uitvoeren, dat ik er een functie voor wil maken, zodat ik niet elke keer de hele functie moet typen, maar gewoon de functie kan aanroepen.
Dit is de situatie nu:
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
25
26
27
| $connect = mysqli_connect("localhost", "root", "derpderp", "databeest"); if (mysqli_connect_errno()) { echo 'Failed to connect to MySQL: ' . mysqli_connect_error(); } $result = mysqli_query($connect, "SELECT * FROM users ORDER BY last_name"); echo '<table border="1"> <tr> <th>ID</th> <th>Name</th> <th>Phone number</th> <th>Email address</th> </tr>'; 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>'; } echo '</table>'; mysqli_close($connect); |
Dit is mijn poging tot het maken van een funtie:
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
25
26
27
28
29
30
31
| function execute($query) { $connect = mysqli_connect("localhost", "root", "derpderp", "databeest"); if (mysqli_connect_errno()) { echo 'Failed to connect to MySQL: ' . mysqli_connect_error(); } $result = mysqli_query($connect, $query); mysqli_close($connect); return $result; } $result = execute("SELECT * FROM users ORDER BY last_name"); echo '<table border="1"> <tr> <th>ID</th> <th>Name</th> <th>Phone number</th> <th>Email address</th> </tr>'; 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>'; } echo '</table>'; |
Hoewel het goed gaat/lijkt te gaan, heb ik er zo m'n bedenkingen bij. Ik sluit de connectie met de database nog voordat ik in regel 22 verder ga met mysqli_fetch_array($result). Mag dat? Kan dat? (schijnbaar wel) Hoe kan dat netter/beter?
Daarnaast vraag ik me af of ik misschien code teveel heb geschreven. Ik heb het vermoeden dat ik teveel constantes definieer en dat ik een regel code teveel heb getypt. Hoe kan dit netter/beter?