ik zou graag top 5 van mijn posters hebben
ik tel hierdoor hun namen op (ja ik weet het had beter id's weggeschreven maa rben dat dus vergeten my bad)

ik heb volgende code


	$sql = "SELECT COUNT(tblnieuwsreacties.nieuwsreactiesPoster),COUNT(tblstandpuntreacties.standpuntreactiesPoster),tblgebruikers.GebruikersNaam
	FROM tblnieuwsreacties,tblstandpuntreacties,tblgebruikers
	WHERE (tblnieuwsreacties.nieuwsreactiesPoster = tblgebruikers.GebruikersNaam AND
	tblstandpuntreacties.standpuntreactiesPoster = tblgebruikers.GebruikersNaam) GROUP BY 2 ORDER BY 1 DESC LIMIT 0,5";



maar ik krijg dan deze fout:


Can't group on 'COUNT(tblstandpuntreacties.standpuntreactiesPoster)'

dus hij struikelt op die group by 2
maar ik weet niet hoe ik dit anders kan doen ?

Iemand enige raad ?
vervang de 2 eens door de naam waarop je wilt groeperen.
hmm geen slecht idee, maar t werkt nog niet, maar een ander vraagje want ik twijfel wat
het is toch mogelijk om varchars op te tellen , ik dacht van wel maar toch begin er nu aan te twijfelen ? :)
Een varchar optellen? Mmm, lijkt mij niet kunnen.

Edit: Count is geen optelling maar een telling.
nou het gaat dus wel, als ik ze appart doe dus

SELECT COUNT(tblstandpuntreacties.standpuntreactiesPoster), GebruikersLoginnaam FROM tblstandpuntreacties,tblgebruikers
	WHERE tblstandpuntreacties.standpuntreactiesPoster = tblgebruikers.GebruikersLoginnaam
	GROUP BY tblgebruikers.GebruikersLoginnaam
	ORDER BY 1 DESC LIMIT 0,5


en

SELECT COUNT(tblnieuwsreacties.nieuwsreactiesPoster), GebruikersLoginnaam FROM tblnieuwsreacties,tblgebruikers
	WHERE tblnieuwsreacties.nieuwsreactiesPoster = tblgebruikers.GebruikersLoginnaam
	GROUP BY tblgebruikers.GebruikersLoginnaam
	ORDER BY 1 DESC LIMIT 0,5


Maaar ik krijg ze dus niet fatsoenlijk in elkaar verwegen :s
Ik heb géén idee of dat wel kan. Misschien iemand anders.
ik heb zelf nog wat liggen proberen
ik heb ondertussen hetvolgende samengesteld:

<?php

$sql = "SELECT COUNT( tblnieuwsreacties.nieuwsreactiesPoster ) , GebruikersLoginnaam
FROM tblnieuwsreacties, tblgebruikers
WHERE tblnieuwsreacties.nieuwsreactiesPoster = tblgebruikers.GebruikersLoginnaam
GROUP BY tblgebruikers.GebruikersLoginnaam
UNION ALL
SELECT COUNT( tblstandpuntreacties.standpuntreactiesPoster ) , GebruikersLoginnaam
FROM tblstandpuntreacties, tblgebruikers
WHERE tblstandpuntreacties.standpuntreactiesPoster = tblgebruikers.GebruikersLoginnaam
GROUP BY tblgebruikers.GebruikersLoginnaam
ORDER BY 1 DESC
LIMIT 0 , 5";
$query = mysql_query($sql) or die (mysql_error());
while ($line = mysql_fetch_array ($query, MYSQL_NUM))
{
$aantal = $line[0];
$t = $line[2];
$som = ($aantal+$t);
$gebruiker = $line[1];
echo '<fieldset>';
echo '<legend class="hoofdingstandpunt">'.$gebruiker.'
</legend>
<table>
<tr><td>Aantal posts : </td><td class="doaddstandpunt"> '.$som.'</td></tr>
</table>
</fieldset>';
echo '<br>';
}


?>

nu geeft ie weer

kristof aantal post : 2
kristof aantal post : 2

dus probleem is dat die $som = ($aantal+$t);
niet blijkt te werken

Reageren