GimboMedlem sedan dec. 20001 626 inlägg 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 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 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 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