Effe een vraagje hoop dat iemand me kan helpen.
ik zoek een script die uit het database de opgegeven getallen op telt. bijv.

INSERT INTO `gewerkt` VALUES (1, '2006', 'April', '27', '12', '8.20', 'Martin Nutbeij');
INSERT INTO `gewerkt` VALUES (6, '2006', 'Februari', '14', '8', '8.20', 'Martin');
INSERT INTO `gewerkt` VALUES (10, '2006', 'Februari', '14', '12', '8.20', 'Martin');
INSERT INTO `gewerkt` VALUES (11, '2006', 'Februari', '28', '8', '8.20', 'Martin');

nu moet de script alle 8.20 optellen
en de uitkomst op de website weergeven.
weet iemand iets ??
thx
SELECT (
SUM( uren ) * salaris
)
FROM gewerkt
WHERE gebruiker = 'Martin'
LIMIT 0 , 30

Werkt bij mij gewoon geeft 229,ik heb je tabel iets aangepast:
CREATE TABLE `gewerkt` (
`id` int(10) NOT NULL default '0',
`jaar` varchar(100) NOT NULL default '',
`maand` varchar(200) NOT NULL default '',
`dag` varchar(100) NOT NULL default '',
`uren` tinyint(3) NOT NULL,
`salaris` varchar(4) NOT NULL default '',
`gebruiker` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Gegevens worden uitgevoerd voor tabel `gewerkt`
--

INSERT INTO `gewerkt` VALUES (1, '2006', 'April', '27', 12, '8.20', 'Martin Nutbeij');
INSERT INTO `gewerkt` VALUES (6, '2006', 'Februari', '14', 8, '8.20', 'Martin');
INSERT INTO `gewerkt` VALUES (10, '2006', 'Februari', '14', 12, '8.20', 'Martin');
INSERT INTO `gewerkt` VALUES (11, '2006', 'Februari', '28', 8, '8.20', 'Martin');

en ik ga nu slapen

Lees de Post van Jan even over je datamodel en lees mijn post van pagina een even voor het op de juiste manier op hetscherm toveren van de gegevens

Succes
Dat het werkt is mooi, maar het datamodel klopt nog steeds niet. Zie mijn vorige post.
Martin schreef op 16.04.2006 22:52
Heb dit geprobeerd maar geeft als uit komst 1.

$sel = mysql_query("SELECT SUM(uren*salaris) FROM gewerkt WHERE gebruiker='".$row_userdata['voornaam']." ".$row_userdata['achternaam']."' and jaar='$p_jaar' and maand='$p_maand'");
$count = mysql_num_rows($sel);

weet het nie meer hoor


En dat is net iets ander als:
$sel = mysql_query("SELECT (SUM(uren)*salaris) FROM gewerkt WHERE
Martin schreef op 16.04.2006 22:52
Heb dit geprobeerd maar geeft als uit komst 1.

$sel = mysql_query("SELECT SUM(uren*salaris) FROM gewerkt WHERE gebruiker='".$row_userdata['voornaam']." ".$row_userdata['achternaam']."' and jaar='$p_jaar' and maand='$p_maand'");
$count = mysql_num_rows($sel);

weet het nie meer hoor
Martin, als je wilt leren programmeren, zul je eerst moeten leren lézen. In dit topic heb ik al drie keer de juiste oplossing langs zien komen. Als je dan blijft vasthouden aan een oplossing waarvan al meteen in het begin werd gezegd dat het niet de juiste is, heb je het helemaal aan jezelf te danken dat het niet werkt.
Hier een link naar de verschillende datatypes in MySQL: http://dev.mysql.com/doc/refman/4.1/en/data-types.html

Dit zul je nog heel hard nodig hebben, er bestaat (gelukkig) meer dan alleen een VARCHAR en een INT.

Een artikel over databasenormalisatie lijkt mij ook op zijn plaats. Je gaat toch niet voor ieder uur dat iemand werkt, zijn salaris noteren? Iemand heeft een uurloon, logisch, maar dat zal echt niet ieder uur veranderen. Hooguit een paar keer per jaar en je kunt toeslagen hebben e.d., maar dat noteer je niet honderden keren opnieuw.
Nog even terugkomen op een oude post:
`salaris` varchar(4) NOT NULL default '',

en het uur tarief kan varieren bij voorbeeld vandaag 8.20 per uur en een andere keer 18.10 enz.
Nou dat kan dus níet ;-) Als je het uurloon opslaat in een varchar(4) is er geen ruimte om een string "18.10" op te slaan. Bij MySQL gaat het dan per ongeluk wel goed, omdat de string wordt ingekort tot 18.1 (wat rekenkundig gezien toevallig hetzelfde is) maar bij andere databases zou waarschijnlijk je insert botweg worden geweigerd.

Zoals al eerder is gesuggereerd, kun je hier het best een numeriek type kiezen, zoals float, double, of decimal(5,2)

Reageren