Avatar billede chr.kj Nybegynder
16. juli 2008 - 10:35 Der er 2 kommentarer og
1 løsning

Tilmeldings system

Jeg har en HP hvor spillere skal kunne tilmelde sig kampe. Brugeren logger sig ind og der laves en session udfra brugerens E-mail adresse. Det jeg ønsker der kan ske er at, brugeren klikker sig ind på den kamp han ønsker at tilmelde sig til og herefter klikker på en knap f.eks. "Tilmeld til kamp" - Brugeren får nu at vide at han er tilmeldt kampen. Jeg ønsker at alle brugere (p.t. 12) kan tilmelde sig samme kamp - er det noget der kan lade sig gøre og hvordan kan det evt. laves? Min kode til kampen ser p.t. sådan ud:

<!--#include file="auth.asp"-->
<!--#include file="conn.asp"-->
<%

SQL = "SELECT * FROM upcoming WHERE id=" & Request.Querystring("id")
' Her laver vi et SQL udtræk fra to tabeller i Databasen så vi kan få fat i maps.
SQL2 = "SELECT * FROM MapsID WHERE id in (SELECT Map1 from upcoming WHERE id=" & Request.QueryString("id")& ")"
SQL3 = "SELECT * FROM MapsID WHERE id in (SELECT Map2 from upcoming WHERE id=" & Request.QueryString("id")& ")"
' Her laver vi et SQL udtræk fra to tabeller i Databasen så vi kan få fat i kamptypen
SQL4 = "SELECT * FROM kamptyper WHERE id in (SELECT matchType from upcoming WHERE id=" & Request.QueryString("id")& ")"
' Her laver vi et SQL udtræk fra to tabeller i Databasen så vi kan få fat i tidspunktet hvor kampen skal begynde
SQL5 = "SELECT * FROM klokken WHERE id in (SELECT kampstart from upcoming WHERE id=" & Request.QueryString("id")& ")"
' Her henter vi PersonID fra den session der er i gang således at vi kan tilmelde spilleren til kampen
SQL6 = "SELECT PersonID, GameName, Betalt FROM person WHERE EmailAddress='"& Session("EmailAddress") &"'"
Set rs = objConn.Execute(SQL)
Set rs2 = objConn.Execute(SQL2)
Set rs3 = objConn.Execute(SQL3)
Set rs4 = objConn.Execute(SQL4)
Set rs5 = objConn.Execute(SQL5)
Set rs6 = objConn.Execute(SQL6)

    if request("action")="Tilmeld" Then
       
        'PersonID= request.Form("tilmeld")
       
        SQL = "UPDATE upcoming SET spiller + 1 WHERE id ='" & Request.QueryString("id") & "'"
        response.Write SQL
        Set rs = objConn.Execute(SQL)  'du manglede denne         
            objConn.Close
        Set objConn = Nothing
   
    Response.Write "<center><strong>Du er nu tilmeldt kampen</strong></center>"
       
    Else
%>

<form name='addToMatch' method='POST' action="default.asp?page=upcomingmatches&action=Tilmeld&id=<% =rs("id") %>&PersonID=<% =rs6("GameName") %>">
<table border="0" cellpadding="0" cellspacing="5">
    <tr><td>
        Modstander:
    </td><td>
    <% =rs("matchModstander") %>
</td></tr>
<tr><td>
    Dato:
</td><td>
  <% =rs("matchDato") %>
          </td></tr>
<tr><td>
    Klokken:
</td><td>
    <%
    If NOT (rs5.BOF OR rs5.EOF) Then
    Response.Write rs5("tidspunkt")
Else
    Response.Write "Starttidspunkt for kamp er ikke indtastet"
End If
%>
</td></tr>
<tr><td>
    Server:
</td><td>
    <% =rs("matchServer") %>
</td></tr>
<tr><td>
    Password:
</td><td>
    <% =rs("matchPassword") %>
</td></tr>
<tr><td>
    Vores map:
</td><td>
<%
If NOT (rs2.BOF OR rs2.EOF) Then
    Response.Write rs2("map")   
Else
    Response.Write "Intet map er valgt"
End If
%>
</td></tr>
<tr><td>
    Deres map:
</td><td>
<%
If NOT (rs3.BOF OR rs3.EOF) Then
    Response.Write rs3("map")   
Else
    Response.Write "Intet map er valgt"
End If
%>
</td></tr>
<tr><td>
    HLTV IP:
</td><td>
    <% =rs("matchHLTV") %>
</td></tr>
<tr><td>
    Custodia key:
</td><td>
    <% =rs("matchCustodia") %>
</td></tr>
<tr><td>
    Kamp type:
</td><td>
<%
If NOT (rs4.BOF OR rs4.EOF) Then
    Response.Write rs4("kamptype")
Else
    Response.Write "Ingen kamp type er valgt"
End If
%>
</td></tr>
<tr><td>
    Lineup:
</td><td>
    <input type="hidden" name="lineup" value="<% =rs("lineup") %>">
   
    <%
   
    If rs("lineup") = "" Then
        Response.Write "Ingen tilmeldte spillere"
    Else       
        Response.Write rs("lineup")
    End If
    %>
</td></tr>
<tr><td>
    &nbsp;
</td><td>
    <%
If rs6("Betalt") = "nej" Then
    Response.Write "<strong><font color='red'>Du mangler at betale kontingent og kan derfor ikke tilmelde dig kampe!</font></center>"
Else
    Response.Write "<input type='submit' name='submit' value='Tilmeld dig kamp' style='font-family: Verdana; font-size: 8pt; background-color: #FFFFFF; color: #000000; border: 1px solid; color: #000000'>"
End If
%>       
</td></tr>

<%
objConn.Close
Set objConn = Nothing

End if
%>
</table>
</Form>

Som I kan se har jeg et felt i min mySQL DB der hedder lineup hvor jeg egentlig havde i tanken at når en bruger klikker på Tilmeld, så bliver brugerens navn sat ind i dette felt, eneste MEN, er at når en anden bruger så klikker på Tilmeld, så overskrives det navn der allerede står i feltet og det er vel heller ikke muligt at slette sig uden også at slette de andre, eller er det?
Avatar billede weis Nybegynder
16. juli 2008 - 21:33 #1
Uden at have læst hele koden, så vil mit forslag være at du laver en tabel som skal indeholde de navne som tilmelder sig en kamp samt en reference til kampen, se eks:

-----------
KampTabel:
-----------
id    int primær nøgle
sted  text
dato  datetime
... osv
-----------
DeltagKamp
-----------
refId    int (reference til id i din KampTabel)
navn      text

og når en bruger så klikker på knappen, så bliver han tilføjet i din deltagKamp tabel med kampens id
Avatar billede chr.kj Nybegynder
18. juli 2008 - 10:00 #2
Ahhh... Det var lige den form for idé jeg manglede :D

Smid et svar hvis du vil have point..

Takker
Avatar billede chr.kj Nybegynder
24. juli 2008 - 20:05 #3
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester