code voor één rij
Ik ben bezig met een PHP & MySQL tutorial en het gaat best goed. Ik wil graag leren om scripts te kunnen lezen (begrijpen wat er staat) en kleine aanpassingen te kunnen doen.
Nou wil ik een gemiddelde uit een database halen, maar momenteel plaats ik die in een while. Ik weet (lees: denk) dat dat niet juist is en wil jullie daarom vragen ..
Wat te doen bij 1 resultaat? Ik weet dat bij meerdere resultaten while gebruikt moet worden, maar wat bij 1 resultaat zoals bij mijn gemiddelde.
Mijn code is nu:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include 'db_config.php';
$sql = "
SELECT
AVG(salaris_schaal) AS gemiddelde
FROM
werknemers
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error(). '<br />In query' .$sql);
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo 'Gemiddelde: '.$row['gemiddelde'].' ';
}
}
?>
include 'db_config.php';
$sql = "
SELECT
AVG(salaris_schaal) AS gemiddelde
FROM
werknemers
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error(). '<br />In query' .$sql);
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo 'Gemiddelde: '.$row['gemiddelde'].' ';
}
}
?>
oci_fetch_all()
pg_fetch_all()
sqlite_fetch_all()
Gebruikers van PDO kunnen met PDOStatement->fetchAll() aan de slag, zo kun je het ook voor andere databases gebruiken.
Met deze functies dump je in 1x de complete resultset in een array. Voor het weergeven van deze array heb je uiteraard wel weer een lus nodig, maar dat heb je nooit nodig wanneer je nog met de database ligt te rommelen.
Erg handig om een strakke scheiding tussen database, applicatie en presentatie af te dwingen.
Edit: Speciaal voor de wat lui aangelegde programmeurs...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Die fetch all methode is wel handig, zo kun je dus echt je code goed gescheiden houden. Die zou ik er eens in moeten houden, thnx Frank.