Hallo,

Ik heb al een lange tijd geen gebruik gemaakt van SUM() en ben het een beetje vergeten, hoe het precies werkt.
Vele tutorials bekeken, maar nergens staat de stap aangegeven, hoe het moet bij het weergeven van de resultaten.

Zowat alle tutorials laten zien, hoe de query moet en laten vervolgens alleen het resultaat zien.

Dit heb ik :

$krijgbestandruimte = $connect->query("SELECT SUM(grootte) FROM bestanden");


Ik heb het al geprobeerd met "$bestandruimte = mysqli_fetch_array($krijgbestandruimte);", maar ik krijg niks te zien.
Je gebruikt $connect->query(…) in objectgeoriënteerde stijl. Dat kun je niet combineren met = mysqli_fetch_array(…) in procedurele stijl. Dat wordt dan eerder zoiets als $connect->fetch_array() of $connect->fetch_row(). Probeer het daar eens mee?
Ik neem aan, dat het alleen geldt bij dingen zoals sum()?
Ik gebruik het normaal gesproken altijd zoals dit :


$zoekclienten = $connect->query("SELECT * FROM clienten WHERE klantnummer = '".$clientnr."'");
$client = mysqli_fetch_array($zoekclienten);
Nee, dat geldt voor alles. Je kunt beter objectgeoriënteerd en procedureel PHP niet mengen.

Het enige verschil is hier dat SUM() een resultaat met maar één rij teruggeeft. Je hoeft die dus niet te doorlopen met while bijvoorbeeld, maar kunt direct die ene rij eruit halen met fetch_row(). In stappen:


<?php
$resultaat = $connect->query('SELECT SUM(grootte) FROM bestanden');
$rij = $resultaat->fetch_row();
$bestandsruimte = $rij[0];
?>
Oke, dan weet ik dat. Dit werkt overigs ook voor mij :


$krijgbestandruimte = $connect->query("SELECT SUM(grootte) AS totaal FROM bestanden");
$bestandruimte = mysqli_fetch_assoc($krijgbestandruimte);
echo $bestandruimte['totaal'];


Heb het stukje "AS totaal" erbij gezet.
Dat het werkt betekent niet dat het slim is. Er kan een willekeurig moment komen dat het niet langer werkt, wanneer de OO stijl en de procedurele stijl intern verder uit elkaar drijven bijvoorbeeld.

Reageren