![]() |
Listning av förslag på namn
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 :D 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. |
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 |
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:
|
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 :D, men jag vet iaf att det heter count() och måste bara lära mig detta.. åter,, tusen tack för tipsen. |
Hur ser din kod ut när du använder count?
|
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 :D |
Citat:
|
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. |
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. |
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! |
Alla tider är GMT +2. Klockan är nu 14:46. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson