Højst hits for de sidste 7 dage

Tags:    php

<< < 123 > >>
Hej.
Sidder lige med et irriterende problem, og har virkelig brug for hjælp:

Jeg har i min database en masse felter. Nogle af dem har det samme id. De rækker som havde de samme id skal et af dets andre felter nu pludses sammen.
Når dette er gjord har jeg så brug for hvilket id der havde sammen havde det største sum.


Håber du forstår hvad jeg mener. Hvad jeg skal bruge det til at lidt advanceret. ;) Men det kan ikke gøres manuelt, der er en hel del felter!



28 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
sæt lige en "or die(mysql_error());" på;)



f skulle være et h.



Hmm okay...
Men nu har jeg valgt at gå helt uden om min WHERE dato halløj del, da jeg bare har vagt at slette alle disse rækker først, så det skulle ikke behøves mere...

Den siger at fejlen ligger på linjen efter selve vores SELECT kode. Kan det være der fejlen ligger?

Fold kodeboks ind/udKode 




du burde sætte en or die på din query som der blev foreslået.

$sql = mysql_query("SELECT *,SUM(hint) FROM links_hint GROUP BY linkid ORDER BY SUM(hint) DESC LIMIT 10") or die(mysql_error());

Det query virker fint nok. den laver et resultatet med alle kolonnerne i links_hint inklusiv hint plus en kollone SUM(hint) grupperet ved kolonnen linkid sorteret faldende efter kolonnen SUM(hint).



Okay så bruger jeg "or die"

Så giver den følgende fejl:

Invalid use of group function



$sql = mysql_query("SELECT *,SUM(hint) AS hsum FROM links_hint GROUP BY linkid ORDER BY hsum DESC LIMIT 10") or die(mysql_error());

prøv den der, søgte på din fejl besked og mysql og fandt dette link.
http://bugs.mysql.com/bug.php?id=5478




Hurra det virker.

Men nu er der et nyt problem. Men kan være jeg skal oprette en ny tråd.


Problemmet er at når jeg lader koden liste, så starter den med den sum der den 10 største og derefter den 9 osv.. ned til nr. 1 og ikke fra nr. 1 og ned til 10. Rimelig irriterende... Håber du forstår ;)


Her er min totale kode
Fold kodeboks ind/udKode 




istedet for
Fold kodeboks ind/udKode 

så prøv
Fold kodeboks ind/udKode 

Tror nemlig bare du skal ændre DESC til ASC



Nej det skal jeg slet ikke gøre Mathias. For så får jeg dem der er helt lavest. Altså den 10 største som nr. 1 men til gengæld 1 laveste.



Gør jeg som du siger får jeg denne fejl ved "or die" brug:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'li.linkid AS linkid,SUM(li.hint) AS hsum FROM links_hint AS li

Og efter jeg lige havde sat et ";" og ande småfejl...



<< < 123 > >>
t