webForumDet fria alternativet

relation?

3 svar · 200 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 626 inlägg
#1

hejsan,

Håller på o bygger ett litet system för att kolla sina krediter. Dvs folk loggar in med sitt kund nummer och därefter köper krediter. jag har en databas tabell som ser ut på följande sätt:

info[ID, Foretag, kontaktNamn, eMail, Tele, Krediter, Kundnr, Hemsida, Datum]

nu fungerar det som så att när de loggar in och anger sina krediter så skrivs dessa över de gamla, jag vill att samtliga kreditköps loggas i databasen, för att därefter kunna sortera samtliga köp efter datum, dvs att det ser ut på följande sätt i en asp sida:

Januari
-----------------
köpta krediter: 1000st

Februari
------------------
köpta krediter: 200st

totalt antal köpta krediter: 1200st

Någon som har en ide på hur jag ska gå till väga för att uppnå detta?? måste en relation skapas?? isånafall hur går jag tillväga??

SebbeMedlem sedan jan. 20032 285 inlägg
#2

Ja, du måste nog använda två tabeller.
De kan se ut såhär på ett ungefär:

tblUsers
----------
ID - ID
Namn - Text
Foretag - Text
Mail - Text
Telefon - Text
Kundnr - Text (eller Nummer, men kundnummer kan ju bli ganska stora)
Hemsida - Text

tblKrediter
-------------
userID - Nummer (relation till ID i tblUsers)
Krediter - Nummer
Datum - Datum/Tid

Sedan när du lägger in krediter i databasen gör du såhär ungefär:

intUserID = objConn.Execute("SELECT ID FROM tblUsers WHERE Namn = '" & Session("user") & "'")(0)
strSQL = "INSERT INTO tblKrediter (userID, Krediter, Datum) VALUES (" & intUserID & ", " & Replace(Request.Form("krediter"), "'", "") & ", #" & Date() & "#")
objConn.Execute(strSQL)

När du sedan hämtar ut krediterna och vill lista dem efter datumet gör du såhär: (det här kan bli helfel, eftersom jag inte har testat det)

strSQL = "SELECT Krediter, Datum FROM tblKrediter WHERE userID = (SELECT ID FROM tblUsers WHERE Namn = '" & Session("user") & "') ORDER BY Datum"
Set objRS = objConn.Execute(strSQL)

If NOT objRS.EOF Then
  Do Until objRS.EOF
    If Month(objRS(1)) > Month(dtmTemp) OR Year(objRS(1)) > Year(dtmTemp) Then
      Response.Write("<br><b>" & MonthName(Month(objRS(1))) & " " & Year(objRS(1)) & "</b><br>")
      dtmTemp = objRS(1)
    End If

    Response.Write(objRS(0) & "<br>")
    objRS.MoveNext
  Loop
End If

objRS.Close : Set objRS = Nothing
GimboMedlem sedan dec. 20001 626 inlägg
#3

den skriver inte ut någonting, då jag skrev ut SQl satsen så verkade inte detta fungera fick detta på skärmen:

SELECT Krediter, Datum FROM tblKrediter WHERE userID = (SELECT ID FROM tblUsers WHERE Namn = 'Per Danielson') ORDER BY Datum

det ovan ficks då jag använde denna kod

strSQL = "SELECT Krediter, Datum FROM tblKrediter WHERE userID = (SELECT ID FROM tblUsers WHERE Namn = '" & Session("user") & "') ORDER BY Datum"

så jag gjorde om koden till följande

strSQL1 = "SELECT ID FROM tblUsers WHERE Namn = '" & Session("user") & "' "
Set objRS = Connect.Execute(strSQL1)
userID = objRS("ID")
strSQL = "SELECT Krediter, Datum FROM tblKrediter WHERE userID = "&userID&" ORDER BY Datum"
Set objRS = Connect.Execute(strSQL)
'response.write strSQL : response.end 

If NOT objRS.EOF Then
  Do Until objRS.EOF
    If Month(objRS(1)) > Month(dtmTemp) OR Year(objRS(1)) > Year(dtmTemp) Then
      Response.Write("<br><b>" & MonthName(Month(objRS(1))) & " " & Year(objRS(1)) & "</b><br>")
      dtmTemp = objRS(1)
    End If

    Response.Write(objRS(0) & "<br>")
    objRS.MoveNext
  Loop
End If

objRS.Close : Set objRS = Nothing

vilket gav en mer korrekt sql sats i form utav:

SELECT Krediter, Datum FROM tblKrediter WHERE userID = 1 ORDER BY Datum

vilket är en mer korrekt sql sats, men koden skriver fortfarande inte ut något? dvs sidan blir hel blank???

SebbeMedlem sedan jan. 20032 285 inlägg
#4

Vad skrivs ut om du lägger till en Else-del till If-satsen?

If NOT objRS.EOF Then
  Do Until objRS.EOF
    If Month(objRS(1)) > Month(dtmTemp) OR Year(objRS(1)) > Year(dtmTemp) Then
      Response.Write("<br><b>" & MonthName(Month(objRS(1))) & " " & Year(objRS(1)) & "</b><br>")
      dtmTemp = objRS(1)
    End If

    Response.Write(objRS(0) & "<br>")
    objRS.MoveNext
  Loop
Else
  Response.Write("Inga poster.")
End If
141 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)