Hoi hoi allemaal,

ik heb een stukje PHP waarmee ik tel hoe veel van een bepaald type er aanwezig is.

<?php
$query = "SELECT * , COUNT(*) FROM jos3e_eb_field_values WHERE field_id = 23 GROUP BY field_value";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
/*printf ("%s (%s)\n", $row["field_value"], $row['COUNT(*)']);*/


echo "<td>&nbsp&nbsp" . $row [field_value]."</td>";
echo "<td>&nbsp;&nbsp;&nbsp;&nbsp" , $row['COUNT(*)'] . "</td>";

echo "</tr>";
?>


Nu is het zo dat in jos3e_eb_values in kolom field_id een veld (23) is dat geteld moet worden
Hierin kunnen 4 type (NA,NB,NC en ND) staan.
Nu wil ik deze afzonderlijk tellen.
nu telt hij ze wel, als ze direkt na elkaar komen, zit er een ander type tussen dan begint hij opnieuw.

is er iemand die me op het goede pad kan zetten.

Gtrz Manfred

Als ik een veld zie met de naam 'jos3e_eb_field_values' dan heb ik sterk het idee dat ik tegen een niet-genormaliseerde database aankijk. Tabellen horen nooit op te volgen of genummerd te worden.

De enige manier om dit op te lossen is het maken met meerdere queries, maar dan wordt je applicatie erg ranzig. En dat wíl je ook niet.

Mijn advies: Zoek de entiteiten, waarbij het in dit geval een field_value is en geef deze een eigen tabel, en zorg dat je ze met elkaar koppelt met de juiste klassen in een koppel-tabel, waarbij je de klassen weer in een aparte tabel kan plaatsen. En dat kan je ook weer met leerlingen doen.

Als je alles goed gedaan hebt, dan kan je met een COUNT() eenvoudig op de value-tabel een bepaalde waarde ophalen, en eventueel filteren met WHERE.
Probleem al gevonden, er stond in een van de vertalingen nog ergens een spatie te veel

Maar toch bedankt voor de moeite

Grtz Manfred
Dat lijkt mij niet het hoofdprobleem ;-)

Reageren