FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Hej!
jag har en php nominerings funktion som jag försöker laga. Nu på visningssidan när jag listar upp nomineringarna ser det ut så här Per Kalle Johan Melissa Andrea Per Per Kalle Johan Melissa melissa Listan är lång och rörig ![]() skulle vilja få det se ut såhär istället Per Kalle Andrea Per (2) Kalle Johan (2) Melissa (2) Om ett namn nomineras fler gånger upprepas inte namnet utan bara (antalet) Vor hemskt tacksam för tips, eller vad en sådan funktion kallas så att man vet vad man skall googla efter. |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Om du hämtar info från MySQL kan du använda COUNT(*) och "GROUP BY namn".
Info: http://dev.mysql.com/doc/refman/5.0/...functions.html |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Klarade millennium-buggen
|
Citat:
Vill du inte hellre att det ser ut så här: Citat:
Vill du sortera efter namn eller antal nomineringar? Som tidigare påpekats är det en barnlek om det är mysql och varje nominering ligger på en rad, typ: Citat:
|
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Medlem
|
tack för tipsen,,
db´ns tabeller är bara id och namn <? include("include/db_conn.php"); $xklo = "SELECT * FROM lista ORDER by id desc"; $xlop = mysql_query($xklo); while($ras = mysql_fetch_array($xlop)) { $namn = $ras["namn"]; ?> <?=$namn?> <br> <? } ?> testar just nu med count som ovanstående men då visa ingenting ![]() åter,, tusen tack för tipsen. |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Supermoderator
|
Hur ser din kod ut när du använder count?
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Medlem
|
Hej!
jag hann inte testa långt med annat än $xklo = "SELECT COUNT(*) FROM lista GROUP BY namn ORDER by id desc"; ....... sedan dog internet i hela området... jag har ingen aning om jag lyckas med detta men skall försöka leka med deta under veckan ![]() |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Supermoderator
|
Citat:
![]()
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Mycket flitig postare
|
Något i den här stilen:
INSERT INTO nomineringar (namn,antal) VALUES ("$namn",1) ON DUPLICATE KEY UPDATE antal=antal+1; namn-kolumnen ska vara unique eller primary. Tänk på att $namn måste vara säkrad mot SQL injection. Kanske formatera $namn först så gemener/versaler blir rätt. Edit: Man kanske även borde ha någon kontroll så att inte samma person kan nominera flera gånger. Eller att samma person får nominera flera olika personer, men högst en nominering per nominerad person. I det senare fallet får man nog titta på någon annan lösning än ON DUPLICATE KEY. I det första fallet kan man sätta en flagga i någon annan tabell när personen har använt sin nominering. Senast redigerad av BjörnJ den 2009-12-14 klockan 03:31 |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Klarade millennium-buggen
|
Citat:
SELECT COUNT(Id) AS `antal`, Namn FROM Lista GROUP BY namn ORDER By Namn ASC Kollat av "namn" om den är skiljt från 1 och då skriva ut antalet efter namnet. |
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Medlem
|
Tack allihop, det löste sig. Allstars, jag använde din lösning "SELECT COUNT(Id) AS `antal`, Namn FROM Lista GROUP BY namn ORDER By Namn ASC" det löste det för denna gång nomineringen hade liksom redan börjat och nu får man bättre vy av alla namn men nästa gång blir det filtrering av A a samt göra tabell unique eller primary som BjörnJ tipsade om.
Tusen tack! Senast redigerad av vidir den 2009-12-14 klockan 15:43 |
|||
![]() |
![]() |
Svara |
|
|