Gegevens uit hele tabel (Opgelost)
larssy1 - 10/04/2009 12:53
MySQL beginner
Hoi mensen,
Ik ben bezig met mijn site. Maar nu zit ik even met een probleempje.
Ik heb teveel dingen aan mijn hoofd, en nu ben ik even vergeten hoe ik iets moet doen >.<
Ik heb in de database "gebruikers" een kolom staam genaamt "gebelt"
Maar nu ben ik dus vergeten hoe ik deze gegevens van alle gebruikersophaal, en deze bij elkaar optel.
Ik zat eerst te denken aan dit:
$dbres = mysql_query("SELECT `gebelt` FROM `gebruikers`") or die (mysql_error());
$gebelt = $dbres;
$dbres = mysql_query( "SELECT `gebelt` FROM `gebruikers`" ) OR die ( mysql_error( ) ) ;
$gebelt = $dbres;
Dit is natuurlijk compleet verkeerd maar vraagje of jullie misschien weten hoe ik dit moet doen.
Mvg
Lars
17 antwoorden
Gesponsorde links
NTS64 - 10/04/2009 12:56 (laatste wijziging 10/04/2009 12:56)
PHP gevorderde
$dbres = mysql_query("SELECT SUM(gebelt) FROM gebruikers") or die(mysql_error());
echo mysql_result($dbres, 0, 0); // totaal
larssy1 - 10/04/2009 12:57 (laatste wijziging 10/04/2009 12:57)
MySQL beginner
nee hoort gebelt :O kijk maar in woordenboek :O
NataschaV - 10/04/2009 13:07
PHP interesse
Het is gebeld
't kofschip-x
De l staat er niet in, dus D.
Natascha
larssy1 - 10/04/2009 13:07 (laatste wijziging 10/04/2009 13:41)
MySQL beginner
ups, niks gezegt XD of is dit soms gezegd? :x XD
maar uhm, wat doe ik hier verkeerd, hij geeft namenlijk bij btw 1,00 euro aan, en bij totale donatie -1,00 euro
$gebelt = mysql_result($dbres, 0); // totaal
$gekregen = number_format(round($gebelt * 1.30),2,",",".");
$afgave = number_format(round($gebelt * 0.30),2,",",".");
$btw = number_format(round($gekregen * 0.16),2,",",".");
$donatie1 = number_format(round($gekregen - $afgave),2,",",".");
$donatie = number_format(round($donatie1 - $btw),2,",",".");
En hoe reset je ook alweer ID? er was een manier om dat te doen, dat ie niet meer ineens vanaf 100 begint ofzo
NTS64 - 10/04/2009 13:30
PHP gevorderde
Bedoel je dat je bijvoorbeeld 100 id's hebt en de 20 laatste verwijderd hebt? Als je wilt dat hij dan verder telt vanaf 80 ipv 100, voer je volgende query uit:
ALTER TABLE tablename AUTO_INCREMENT = 80
ALTER TABLE tablename AUTO_INCREMENT = 80
En is $donatie = -1.00?
Dan is je probleem puur wiskundig en moet je eens nagaan of je niet vermenigvuldigt met een negatief getal
larssy1 - 10/04/2009 13:33
MySQL beginner
nou, voordat ik jou code toevoegde, deed hij het gewoon,
maar, nu krijg ik in 1x -1, dus het kan niet aan mijn wiskunde liggen.
Koen - 10/04/2009 13:35
PHP expert
Staan er ergens negatieve getallen in je database?
Echo ook elke variabele waarmee je werkt, dan weet je meteen waar het fout gaat.
larssy1 - 10/04/2009 13:43
MySQL beginner
hoe bedoel je,, echo?
op wat van manier?
Nee, geen negatiefe waardes, de laagste waarde is 0, en alle waarders heb ik eve random wat neergezet,
Dit geeft hij weer in de uitvoer:
Keer gebelt: 3733 x
-----------------
Gekregen: € 4.853,00
Afgave: € 1.120,00
BTW(16%): € 1,00
-----------------
Totale Donatie: € 3,00
met deze code erachter:
$gebelt = mysql_result($dbres, 0); // totaal
$gekregen = number_format(round($gebelt * 1.30),2,",",".");
$afgave = number_format(round($gebelt * 0.30),2,",",".");
$btw = number_format(round($gekregen * 0.16),2,",",".");
$donatie1 = number_format(round($gekregen - $afgave),2,",",".");
$donatie = number_format(round($donatie1 - $btw),2,",",".");
NTS64 - 10/04/2009 13:52
PHP gevorderde
sliphead bedoelt dat je $gebelt eens naar het scherm schrijven met PHP.net: echo , zo kan je kijken wat de waarde ervan is.
Of beter nog, PHP.net: var_dump , zo kan je ook het datatype te weten komen
larssy1 - 10/04/2009 14:03 (laatste wijziging 10/04/2009 14:04)
MySQL beginner
Laat maar, weet al wat het probleem is.
de php opties konden niet de 2decimale getallen goed aflezen.
ik heb het dus als volgt opgelost:
$gebelt = mysql_result($dbres, 0);
$gekregen1 = $gebelt * 1.30;
$gekregen = number_format(round($gekregen1),2,",",".");
$afgave1 = $gekregen1 * 0.30;
$afgave = number_format(round($afgave1),2,",",".");
$btw1 = $gekregen1 * 0.16;
$btw = number_format(round($btw1),2,",",".");
$donatie1 = $gekregen1 - $afgave1;
$donatie2 = $donatie1 - $btw1;
$donatie = number_format(round($donatie2),2,",",".");
$gekregen1 = $gebelt * 1.30 ;
$afgave1 = $gekregen1 * 0.30 ;
$btw1 = $gekregen1 * 0.16 ;
$donatie1 = $gekregen1 - $afgave1 ;
$donatie2 = $donatie1 - $btw1 ;
complimentje aanmezelf en bedankje aan woedi
NTS64 - 10/04/2009 14:06
PHP gevorderde
Nu ik jou code zie, bedenk ik opeens dat number_format een string retourneert, waar je niet correct berekeningen mee kan gaan maken
larssy1 - 10/04/2009 14:30
MySQL beginner
haha XD
Maar nu moet ik nog me ID in me database opnieuw hebben :x
Die tabel heeft natuurlijk een unieke waarde, maar kheb vaak een test char gemaakt, en die dan gedelete, maar nu begint hij bijv in 1x bij ID op 45, hoe reset ik dat , zodat het gewoon weer bij 1 begint?
NTS64 - 10/04/2009 14:33 (laatste wijziging 10/04/2009 14:33)
PHP gevorderde
Zoals ik eerder al zei(maar nu dan vanaf 1):
ALTER TABLE tablename AUTO_INCREMENT = 1
ALTER TABLE tablename AUTO_INCREMENT = 1
Gesponsorde links
Dit onderwerp is gesloten .