Mensen,

Ik heb een inschrijfformulier met database verwerking wat goed werkt. Echter, nu wil ik een soort van beheerpagina maken waarbij je kunt zien hoeveel mensen zich er op welke datum hebben inschreven, maar heb totaal geen idee hoe dit te doen.

Heeft iemand hier ervaring mee? Of kan iemand mij aangeven wat de handigste manier is om dit te bereiken? Verwacht uiteraard niet een compleet voorstel (mag wel :) ).

Thnx

SELECT
  COUNT(1) AS aantal,
  DATE(datumtijdveld) AS datum
FROM
  tabel
GROUP BY datum
ORDER BY 
  datum DESC;

Dit levert per datum het aantal records op, keurig gesorteerd.
Dank voor je reactie pqFrank!
Echter, ik zal nog wel iets verkeerd doen, want krijg onderstaand foutmelding, waarbij ik de volgende code gebruik:


                $tellenRegistraties = mysql_query("SELECT COUNT(1) AS aantal DATE(datum) AS datum FROM inschrijvingen GROUP BY datum ORDER BY datum DESC");
	$resultaatRegistraties = mysql_fetch_assoc($tellenRegistraties);
			
	echo $resultaatRegistraties['aantal'];


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\demosite\beheer.php on line 108

Wat doe ik verkeerd?
De query zal zijn mislukt, maar dat controleer je nergens. Ook zet je nergens de échte foutmelding op het scherm, we kunnen dus alleen maar raden wat er nu fout gaat.

Gokje: er mist een komma tussen de verschillende gegevens die je opvraagt. Achter de naam van de alias (aantal) hoort nog een komma te staan.

Tip: Schrijf queries netjes uit, anders is het logisch dat het fout gaat. Zie mijn voorbeeld, daar valt de komma veel beter op.
Zou je niet eens kijk of wel resultaten in de database staan ?...

<?php
$sql_ =
"
SELECT
COUNT(1) AS aantal,
DATE(datumtijdveld) AS datum
FROM
tabel
GROUP BY datum
ORDER BY
datum DESC;
";

if(!$res_ = mysql_query($sql_))
{

trigger_error(mysql_error().'<br />In query: '.$sql);

} else {

if(mysql_num_rows($res_) >= 1)
{

while($rij = mysql_fetch_assoc($res_))
{
echo 'Datum selecteren gelukt!.'
}

} else {

echo 'Er staan nog (géén) resultaten in de database!.';

}

}
?>

edit: nog enkele aanpassingen gedaan!
pqFrank, heb die , toegevoegd en dan werkt het, maar krijg als resultaat 22 terwijl het aantal record met een datum 9 is?
Bart Tuma, jouw reactie werkt ook, maar krijg als resultaat 4 x Datum selecteren gelukt!. terwijl het aantal verschillende datums maar 3 is? Of rekent hij een leeg veld ook als 1? Dan is 4 wel correct.

Voor de duidelijkheid: wat ik zoek is iets als onderstaand:

10 Augustus 2008: 8 inschrijvingen
11 Augustus 2008: 10 inschrijven
12 Augustus 2008: 2 inschrijven
14 Augustus 2008: 33 inschrijven

Wanneer er op een datum dus geen inschrijvingen zijn moet hij deze ook niet laten zien.

PS Sorry voor het vele vragen, maar ben nog een beginner.
Alles moet geleerd worden, zo ben ikook begonnen...

maar mij stukje voorbeeld-code was meer dat je het idee krijgt hoe alles in zijn werk gaat...
Volgens mij ben ik op de goede weg. Als ik namelijk onderstaand doe krijg ik het volgende:


<?php
$datum = mysql_query("
    SELECT datum 
    FROM inschrijvingen");

$sql_ = 
    "
        SELECT
          COUNT(1) AS aantal,
          DATE(datum) AS datum
        FROM
          inschrijvingen
        GROUP BY datum
        ORDER BY 
          datum DESC; 
    ";
    
    if(!$res_ = mysql_query($sql_))
    {
    
        trigger_error(mysql_error().'<br />In query: '.$sql);
        
    } else {
    
        if(mysql_num_rows($res_) >= 1)
        {
        
            while($datum = mysql_fetch_assoc($res_))
            {
                echo "$datum";
            }
        
        } else {
        
            echo 'Er staan nog (géén) resultaten in de database!.';
        
        }
    
    }
?>


Resultaat is nu 4 x Array. Ik bedenk me dat ik eergisteren ook zo'n antwoord kreeg bij een ander probleem, maar had het toen opgelost, alleen weet niet meer hoe. Wat doe ik fout/zie ik over het hoofd?
echo $datum['datum'];

of

echo $datum['aantal'];


In plaats van (regel 27)

echo "$datum";
Robert,

echo $datum['datum']; retourneert leeg
echo $datum['aantal']; retourneert 22171

Heb werkelijk geen idee wat 22171 zou moeten betekenen???
Had eigenlijk verwacht dat hij in plaats van 4 x Array de 4 datums zou geven.
Als je nu:

echo $datum['aantal'] . '<br />';

komt er dan geen:
22
17
1

uit ?

Reageren