column optellen
hier ben ik weer met een andere vraag.
heb achteraf gezien niet goed nagedacht, ik wil namelijk het volgende
ik heb een tabel kosten. hier staan meerdere velden in, alleen zal ik nu alleen de velden opnoemen die betrekking hebben op me vraag/probleem
accountid
soort (invest/profit)
bedrag
///voorbeeld
soort----bedrag
invest | 5,30
profit | 7,30
profit | 11,30
invest | 2,30
invest | 2,10
nu wil simpel weg de invest en profit berekenen(totaal invest en totaal profit) zodat ik uiteindelijk de 'winst' kan berekenen.
ik had het beter in dit geval beter zo kunnen doen dat de invest(uitgave)in de - werden opgeslagen zodat ik de hele rij in 1 x bij elkaar kon optellen. maar in de toekomst zal ik dit nog wel vaker nodig hebben voor meerdere soorten verschillende bedragen.
wat ik nu probeer is het volgende.
Code (php)
1
2
3
4
5
2
3
4
5
<?
$qry = mysql_query(" SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = $id AND soort = profit");
$row = mysql_fetch_row($qry);
echo $row['total_profit'];
?>
$qry = mysql_query(" SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = $id AND soort = profit");
$row = mysql_fetch_row($qry);
echo $row['total_profit'];
?>
krijg alleen de volgende foutmelding
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in
ik probeer in deze query alleen de profit op te halen, in een volgende query komt dan de invest, of kan dit ook handiger?
waarbij de foutmelding
Code (php)
1
2
3
2
3
<?php
$qry = mysql_query(" SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = ".$id." AND soort = 'profit'");
?>
$qry = mysql_query(" SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = ".$id." AND soort = 'profit'");
?>
Dit zal dan wel moeten werken, maar ik zou wel goede foutafhandeling op je $qry plaatsen.
Tevens raad ik hard aan om van de mysql_*() functies af te stappen en mysqli_*() te gebruiken.
- Ariën - op 06/06/2016 20:00:52:
Dit zal dan wel moeten werken, maar ik zou wel goede foutafhandeling op je $qry plaatsen.
Tevens raad ik hard aan om van de mysql_*() functies af te stappen en mysqli_*() te gebruiken.
Code (php)
1
2
3
2
3
<?php
$qry = mysql_query(" SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = ".$id." AND soort = 'profit'");
?>
$qry = mysql_query(" SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = ".$id." AND soort = 'profit'");
?>
Dit zal dan wel moeten werken, maar ik zou wel goede foutafhandeling op je $qry plaatsen.
Tevens raad ik hard aan om van de mysql_*() functies af te stappen en mysqli_*() te gebruiken.
'' hoeft toch niet persee? heb andere query's ook zonder. welke werken.
met jou query krijg ik nog steeds de zelfde foutmelding, weet niet of het wat veranderend maar de bedragen staan in float, aangezien ik anders niet met , kan werken.
Quote:
Daar zul je dan echt vanaf moeten stappen. php/mysql kunnen niet rekenen met een komma, wel met een punt. Gebruik dus geen komma maar een punt.de bedragen staan in float, aangezien ik anders niet met , kan werken.
Ramon van Dongen op 06/06/2016 20:27:12:
Quote:
Daar zul je dan echt vanaf moeten stappen. php/mysql kunnen niet rekenen met een komma, wel met een punt. Gebruik dus geen komma maar een punt.de bedragen staan in float, aangezien ik anders niet met , kan werken.
sorry bedoelde ook . ipv ,
Toevoeging op 06/06/2016 21:07:09:
- Ariën - op 06/06/2016 20:27:51:
* = een joker die je voor alles kan inzetten. Dus mysqli_query, mysqli_num_rows etc...
Als ik jouw was zou ik maar eens met foutafhandeling inbouwen met: mysqli_error
Als ik jouw was zou ik maar eens met foutafhandeling inbouwen met: mysqli_error
heb als het goed is nu een foutafhandeling ingebouwd en overgestapt naar mysqli met pdo.
volgens mij zou dit moeten werken(doet het natuurlijk niet) blijf de zelfde foutmelding als hier boven krijgen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$profit = ("SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = ".$id." AND soort = 'profit'");
$result = $con->query($profit);
$result->execute();
if($result)
{
$resultSet = mysqli_fetch_assoc($result);
echo 'profit:'.$resultSet['total_profit'];
}
else
{
echo 'MYSQL FOUT IN QUERY:'.$profit.PHP_EOL.'ERROR: '.mysqli_error();
}
?>
$profit = ("SELECT SUM(bedrag) AS total_profit FROM kosten WHERE accountid = ".$id." AND soort = 'profit'");
$result = $con->query($profit);
$result->execute();
if($result)
{
$resultSet = mysqli_fetch_assoc($result);
echo 'profit:'.$resultSet['total_profit'];
}
else
{
echo 'MYSQL FOUT IN QUERY:'.$profit.PHP_EOL.'ERROR: '.mysqli_error();
}
?>
Gewijzigd op 06/06/2016 21:07:54 door Jaap evidor
met de procedurele mysqli_fetch_assoc()
$result is immers een object (je doet iets met ->execute() )
en dat object stop je in de fetch functie die een resultset wil hebben....
Actually, scrap that. Het object is waarschijnlijk van de verkeerde klasse :D.
Het probleem is denk ik dat je $resultSet wilt gebruiken als array, terwijl dit een object is, omdat je deze ook als zodanig gefetched hebt :).
EDIT: het gaat wss daarvoor al mis. Je gebruikt enerzijds prepared statements en anderzijds de normale variant.
EDIT: even stap voor stap:
De query() methode retourneert in dit geval ofwel een mysqli_result object, ofwel false.
Vervolgens wil je hier execute() op loslaten, maar dat is een methode van de mysqli_statement klasse... dat lijkt mij niet kloppen...
Je gooit hier twee werkwijzen door elkaar en koppelt methoden aan objecten van de verkeerde klasse.
Gewijzigd op 07/06/2016 15:34:01 door Thomas van den Heuvel