Goedenavond,

Ik zit hier met een best groot probleempje.

Ik heb een tabbel waar alle keuzes van gebruikers in komen te staan:

Id - name - keuze - e-mail
01 - sjon - 4 - [email protected]
05 - hans - 5 - [email protected]
09 - kaas - 4 - [email protected]

Nu kunnen gebruikers hun keuze maken d.m.v een formulier, alleen nu moeten er dus limieten aan keuzes worden ingesteld! Oftewel: als keuze 5 meer dan 754 voorkomt dan moet hij iet's niet echoen, komt het minder dan 754 keer voor dan moet hij wel iet's echoen.

Hoe kan ik dit oplossen!!!?
Dat kan toch gewoon zo:
Query:
SELECT *, COUNT(id) AS aantal FROM tabel WHERE keuze = 5

PHP:
<?php
if(!$res = mysql_query($sql)) {
    echo 'Error tijdens uitvoeren van de query';
} else {
    while($row = mysql_fetch_assoc($res)) {
        if($row['aantal'] <= 754) {
            echo 'Iets echoen';
        } else {
            echo 'Niets echoen';
        }
    }
}


EDIT: code fix
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
laat je volledige query eens zien, dit zou gewoon moeten werken nl...

<?php
$sql = 'SELECT *, COUNT(id) AS aantal FROM keuze WHERE keuze = 1';
		if(!$res = mysql_query($sql)) {
    echo mysql_error();
} else {
    while($row = mysql_fetch_assoc($res)) {
        if($row['aantal'] <= 40) {
            echo '<option value="1">hjkhjk</option>';
        } else {
            echo 'Niets echoen';
        }
    }
}
doet ie misschien moeilijk met de zelfde veldnaam als tabelnaam? Lijkt me erg sterk maar het blijft mysql... ;). Verder is dat sterretje niet nodig. Typ gewoon de veldnamen die je echt wilt hebben
Ik heb totaal geen veldnamen nodig, maar tjah het blijft mysql :(
Dat sterretje zorgt ervoor dat hij alle resultaten op wil halen die aan de voorwaarde voldoen. COUNT wil echter 1 resultaat ophalen, namelijk het aantal records dat aan de voorwaarden voldoet. Best logisch die error dus.

Probeer deze eens, dan heb je volgens mij alle aantallen van alle mogelijke keuzes in 1 keer. Scheelt je weer een hoop queries.

SELECT keuze, COUNT(keuze) as aantal FROM keuze GROUP BY keuze


... wauw, boel "keuze" heb je zo :P
Crispijn heeft dan wel ongelijk, een kolomnaam hetzelfde als een veldnaam kan wel. Hij wijst je wel op iets waar je rekening mee moet houden. Het wordt voor jou niet gemakkelijker om dingen te lezen, waar gaat het om de kolom, en waar om de tabel? Dat zal je dan uit de logica moeten opmaken.

Probeer duidelijke en verschillende tabelnamen en kolomnamen te gebruiken, dat maakt het voor jezelf wel zo gemakkelijk.
Ja, ik heb indd ongelijk met mijn veldnaam/tabelnaam duplicaten. Toch indd is dit heel slecht leesbaar. Het geeft zoals Robert zegt echt geen duidelijkheid over wat je nou precies aan het doen bent...

<?php
	$sql = 'SELECT keuze, COUNT(keuze) as aantal FROM keuze GROUP BY keuze';
		if(!$res = mysql_query($sql)) {
    echo mysql_error();
} else {
    $row = mysql_fetch_assoc($res);
    
        if($row['aantal'] <= 40) {
            echo '<option value="1">keuze1</option>';
        } else {
            echo 'Niets echoen';
        }
    }?>


Dat werkt nu wel voor keuze 1, alleen hoe ga ik nu keuze 2 en 3 doen?

Reageren