Teller over meerder kolommen in de database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer / Overheid / Complexiteit

Functieomschrijving Wil jij als Java Developer een bijdrage leveren aan een veiliger Nederland en je als Java Developer bezig houden met zeer complexe bedrijfskritische applicaties? Lees dan snel verder! Doorontwikkelen bedrijfskritische applicaties; Aanpassingen maken in de bestaande applicatie; Vertalen van jouw visie op continuous integration en continuous delivery; Debuggen van de applicatie; In gesprek gaan met eindgebruikers om verbetervoorstellen op te halen. Functie-eisen Minimaal HBO-werk en denkniveau; Minimaal 5 jaar werkervaring als Java Developer; Je bent minimaal OCP-Java SE 6 gercertificeerd; Je hebt kennis van Webservices en Continuous Integration; Je bent analytisch sterk en zowel klant- als resultaatgericht. Bedrijfsomschrijving Binnen

Bekijk vacature »

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Manfred vd waarsenburg

Manfred vd waarsenburg

05/01/2019 10:38:16
Quote Anchor link
Hallo allemaal,

We hebben registratie systeem voor een evenement en dit loopt eigenlijk goed.
Er zijn een aantal tellers waarmee we registreren wat er allemaal gebeurd en waar de mensen vandaan komen, ook dit werkt naar tevredenheid.

Teller die we hiervoor gebruiken is :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
foreach($dbh->query('SELECT land, mx,COUNT(*)
FROM inschrijfformulier
GROUP BY land, mx'
) as $row)
{

echo "<tr>";
echo "<td>&nbsp&nbsp" . $row['land'] ."</td>";

echo "<td>&nbsp&nbsp" . $row['mx'] ."</td>";
echo "<td>&nbsp&nbsp" . $row['COUNT(*)'] . "</td>";
echo "</tr>";
}

?>


Nu is het zo dat ik nog een T-shirt aanbied en deze info staat over 4 kolommen verdeeld, dit zijn :
- Type 1 (dames/heren)
- Maat 1 (s/m/l/xl/xxl)
- Type 2
- Maat 2

kan ik ook zoiets als bovenstaande gebruiken om om deze 4 samen te voegen tot 2 en deze meteen op te tellen

Wie o Wie kan mij een beetje op weg helpen ?

Grtz Manfred

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 05/01/2019 12:57:41 door - Ariën -
 
PHP hulp

PHP hulp

20/09/2020 06:27:37
 
- Ariën -
Beheerder

- Ariën -

05/01/2019 10:53:29
Quote Anchor link
Een query geeft een result, en normaal dus geen array. Dus ik neem aan dat het fetchen al in je query-object zit?

Over je vraag: Hoe ziet je database structuur eruit?
 
Manfred vd waarsenburg

Manfred vd waarsenburg

05/01/2019 11:18:47
Quote Anchor link
- Ariën - op 05/01/2019 10:53:29:
Een query geeft een result, en normaal dus geen array. Dus ik neem aan dat het fetchen al in je query-object zit?

Over je vraag: Hoe ziet je database structuur eruit?


Het is een simpele database opgebouwd met Fabrik (Joomla) met daarin naam,woonplaats............ enz,enz
Type shirt 1, Type shirt 2, maat 1 en maat 2 zijn hier onderdeel van.

en iedere nieuwe inschrijving is een nieuwe regel in de database.
 
- Ariën -
Beheerder

- Ariën -

05/01/2019 12:58:57
Quote Anchor link
Dus een shirt kan maar twee typen hebben? Dus genummerde velden?
Klinkt niet echt genormaliseerd.
 
Rob Doemaarwat

Rob Doemaarwat

05/01/2019 13:03:22
Quote Anchor link
Zoiets (geen idee wat er in type1/2 staat)?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo "<td>" . ($row['type1'] + $row['type2']) . "</td>";
 
Manfred vd waarsenburg

Manfred vd waarsenburg

05/01/2019 13:49:05
Quote Anchor link
Ik zal me proberen te verduidelijken

ik gebruik de volgende teller voor het tellen van de t-shirts:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
foreach($dbh->query('SELECT maat_1, type_shirt_1,COUNT(*)

FROM inschrijfformulier
GROUP BY maat_1,type_shirt_1') as $row1)

{

echo "<tr>";

echo "<td>&nbsp" . $row1['type_shirt_1'] . "</td>";

echo "<td>&nbsp" . $row1['maat_1'] . "</td>";
echo "<td>&nbsp;&nbsp;&nbsp;&nbsp" . $row1['COUNT(*)'] . "</td>";

echo "</tr>";

}


hiermee tel ik Type_shirt_1 en de maat_1 en groepeer ze om het resultaat per type en maat te tonen
dit doe ik ook met Type_shirt_2.

ik kan dit alleen separaat van elkaar doen, maar ik zou deze graag samenvoegen.

Grtz Manfred
 
Thomas van den Heuvel

Thomas van den Heuvel

05/01/2019 17:08:14
Quote Anchor link
Als je de types per bestel/inschrijfregel wilt optellen dan kan dat, maar je kunt dan dus geen onderscheid meer maken tussen de maten. Het enige wat je dan dus zou kunnen weergeven per bestelregel is het codefragment van @Rob hierboven.

Of wil je juist weten hoeveel t-shirts van een bepaald type zijn besteld, dus X shirts van type 1 en Y shirst van type 2, of wil je die ook nog onderverdeeld hebben per maat? Dit laatste lijkt mij interessante informatie want dat geeft een overzicht van de totale vraag naar t-shirts, onderverdeeld op type en maat.

Dit laatste wordt een beetje een rare spagaat vanwege de wijze waarop de databasetabel is opgezet. Is het ook mogelijk dat iemand zowel t-shirts van type 1 alsook type 2 bestelt in een enkele inschrijving?

De netste oplossing zou zijn om je database te fixen, maar dit zou waarschijnlijk ook programmeerwerk aan het inschrijfformulier inhouden en omdat dat verzorgd wordt door een of andere module (Fabrik?) wordt dat waarschijnlijk geen succes. Het makkelijkste is waarschijnlijk om eerst een lijstje op te bouwen door alle resultaten gewoon af te lopen en deze in een tijdelijk array op te slaan en dit is wat je uiteindelijk op het scherm toont.
Gewijzigd op 05/01/2019 17:08:56 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.