10. februar 2005 - 13:50Der er
29 kommentarer og 1 løsning
Hjælp til optælling af point
Jeg er ved at lave en hjemmeside og der inde vil jeg gerne have et point system, nu vil jeg lige høre om hvordan jeg tæller op
altså vis jeg har en database med en tabel der hedder point i den tabel er der 3 felter: Id Loginnavn Point
nu er mit spørgsmål bare hvordan tæller jeg dem op altså vis nu jeg tilføjer en bruger med loginnavn: Hans og han får 30 point, så går jeg ind og giver hans 20 point mere, jeg vil have mit system til selv at tælle de point sammen som har samme loginnavn
er det muligt?
jeg ønsker samtidig også at kunne trække dem fra igen
nu skal det lige siges at jeg bruger Dreamweaver, og ja jeg ved godt at de fleste vil sige at jeg skal bruge en html editor, men nu bruger jeg altså Dreamweaver...
conn.Open DSN strsql = "SELECT SUM(Point) AS total, Loginnavn FROM tabelnavn GROUP BY Loginnavn" ' SQL sætning eksekveres set RS = conn.execute(strsql) do while not rs.EOF response.write rs("Loginnavn") &" Point: "& rs("total") &"<br>" rs.MoveNext Loop %>
okay nu fik jeg den til at samle pointene sammen, men nu vil jeg så gerne vis jeg nu laver en formular hvor jeg skriver hvor mange point jeg vil slette fra personen, og trykker på submit, så skal den fjerne de point...
Er der tale om et system som Experten, hvor der bliver overført point fra en bruger til en anden, sådan som fennec tror?
Eller er der simpelt hen tale om, at en bruger på nogen bestemte konditioner skal have tildelt nogen point af dig/dit program?
Er der nogen grund til at holde styr på den idividuelle pointgivning (som vil kræve en tilføjelse af poster hver gang der sker en tildeling/fratagning af point og følgelig en opsummering ved visning) eller skal der bare være en summeret pointgivning som kan klares med en opdatering af pointposten?
En grund til individuelle pointgivning kunne være, at du ville lave en tidsstempling af hvornår de enkelte point blev givet, men med din tabelopbygning ser jeg ingen indikationer i den retning.
En afklaring af formålet med pointene ville helt sikkert gøre det lettere at hjælpe dig.
En ting ser dog umiddelbart lidt forkert ud i den SQL du har:
MMColParam er jo en parameter, men når du bare angiver den som 'MMColParam' er det i stedet blevet til en konstant. Du er nødt til at opbygge den - og her må jeg strække våben; jeg ved ikke om det kan lade sig gøre bare at indtaste det i Dreamweavers SQL felt uden apostroffer:
SELECT SUM(point) AS total (SUM(mpoint) FROM point WHERE loginnavn = MMColParam
Argh, jeg kopierede direkte fra det du skrev i din sidste kommentar, hvor der vist havde indsneget sig en typografisk fejl. SQLen skal naturligvis være:
SELECT SUM(point) AS total FROM point WHERE loginnavn = MMColParam
jammen helt iorden kjulius, jeg vil have et point system som fungere på den måde at jeg har lavet et rank system i forvejen, når man starter som basis bruger så har man fra start af 20 point, så kan man få flere point ved at skrive privat beskeder til andre og skrive indlæg i mit forum, man kan også få flere point ved at få tildelt dem af andre brugere...
Så jeg har stadig ikke forstået, om du opdaterer brugernes point-felt, eller du opretter nye poster med positive og negative point hver gang der sker ændringer - poster, som så skal lægges sammen i en sum-funktion?
okay men så tæller den jo både minus og plus point sammen
altså lad os nu siger at peter har 50 plus point altså point og han også har brug 25 minus point altså mpoint så skal den jo ikke lægge de 2 tal samme for at vise hvor mange point han har, for han har jo så kun 25 point da han har fået trukket 25 fra...
forresten hvordan sortere jeg efter hvem der har flest point... også var der lige et andet spørgsmål releterede til spørgsmålet, jeg er villig til at give i alt 200 point
det andet spørgsmål er, hvordan laver jeg en formular med en boks hvor brugere kan afgive point til en anden bruger, men kun så mange point som brugere har, altså lige i øjeblikket vis jeg nu trækker 200 point fra en der kun har 100 point så står der ligepludselig -100 det er jo meningen af man max skal kunne trække de point fra som man har...
1: SELECT (SUM(point) - SUM(mpoint)) AS total, Loginnavn FROM point GROUP BY Loginnavn ORDER BY total DESC
2: du trækker bare brugerens nuværende point ud, også undersøger du om det er mindre end det indtastet. Du viser selvfølgelig hans point, når han skal indtaste, så han ved hvor mange han har, men du skal også tjekke det inden du opdater databasen, ellers kan man jo bare indtaste et større tal. Tjek også for at tallet er større end 0, ellers kan man trække point fra andre ved at indtaste negative værdier.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.