Teller over meerder kolommen in de database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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

23/03/2019 16:29:17
 
- 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.