Avatar billede landsten Nybegynder
12. februar 2004 - 15:39 Der er 31 kommentarer og
1 løsning

udtræk sider over 40 dage

hmm jeg har rodet lidt med at trærke noget ud af sqldatabasen der er over 40 dage gamel men kan ikke rigtig hitte det er der nogen der kan hjælpe. det skal være sådan at den henter i tabellen webmaster og så id og sideID og bruger og email og dato
og det skal sættes i en tabel. kan man forstå det?
Avatar billede eagleeye Praktikant
12. februar 2004 - 15:49 #1
Du kan bruge DateDiff i SQL sætningen:

SQL = "select * from webmaster where DateDiff('d', dato, Date()) >= 40"
Set rs = Conn.Execute(SQL)
Response.Write "<table>"
Response.Write "<tr><td>id</td><td>sideID</td><td>bruger</td><td>email</td><td>dato</td></tr>"
do while not rs.EOF
  response.Write "<tr>"
  response.write "<td>" & rs("id") & "</td>"
  response.write "<td>" & rs("sideid") & "</td>"
  response.write "<td>" & rs("bruger") & "</td>"
  response.write "<td>" & rs("email") & "</td>"
  response.write "<td>" & rs("dato") & "</td>"
  response.Write "<tr>"
  rs.Movenext
loop
Response.Write "</table>"



den vist SQL sætning viker for access database.
Conn skal være et connection object til din database, det må du lige tilføje.
Avatar billede landsten Nybegynder
12. februar 2004 - 16:10 #2
hmmmm den kommer med fejl
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:21 #3
nå da
Det ville hjælpe ganske meget hvis du beskrev fejlen og gerne copy/paste fejl koden.
Avatar billede landsten Nybegynder
12. februar 2004 - 16:29 #4
okay jeg har lavet koden lidt om til
<%
set rs = server.createObject("adodb.connection")
rs.open "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase &";uid="& SQLlogin &";pwd="& SQLpassword
SQL = "select * from webmaster where DateDiff('d', dato, Date()) >= 40"
Response.Write "<table>"
Response.Write "<tr><td>id</td><td>sideID</td><td>bruger</td><td>email</td><td>dato</td></tr>"
do while not rs.EOF
  response.Write "<tr>"
  response.write "<td>" & rs("id") & "</td>"
  response.write "<td>" & rs("sideID") & "</td>"
  response.write "<td>" & rs("bruger") & "</td>"
  response.write "<td>" & rs("email") & "</td>"
  response.write "<td>" & rs("dato") & "</td>"
  response.Write "<tr>"
  rs.Movenext
loop
Response.Write "</table>"
%>

og så kommer den med den her fejl
Fejltype:
ADODB.Connection (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.
/hemlig/gamle.asp, line 9
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:33 #5
ok du bruger mysql :)
så skal SQL sætningen laves lidt om, så prøv at lave denne linje:

SQL = "select * from webmaster where DateDiff('d', dato, Date()) >= 40"


om til denne:

SQL = "select * from webmaster where DateDiff(CUR_DATE(),dato) >= 40"
Avatar billede landsten Nybegynder
12. februar 2004 - 16:33 #6
kan jeg nå at sætte mere på den for så ville jeg gerne have at den kun hentede dem frem hvis de ikke havde haft nogen hits i 40 dage hits ligger i tabellen sider og rekken heder hits  ;-)
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:35 #7
Koden skal også rettes til sådan her:


<%
set conn = server.createObject("adodb.connection")
conn.open "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase &";uid="& SQLlogin &";pwd="& SQLpassword

SQL = "select * from webmaster where DateDiff(CUR_DATE(),dato) >= 40"
Set rs = Conn.Execute(SQL)
Response.Write "<table>"
Response.Write "<tr><td>id</td><td>sideID</td><td>bruger</td><td>email</td><td>dato</td></tr>"
do while not rs.EOF
  response.Write "<tr>"
  response.write "<td>" & rs("id") & "</td>"
  response.write "<td>" & rs("sideID") & "</td>"
  response.write "<td>" & rs("bruger") & "</td>"
  response.write "<td>" & rs("email") & "</td>"
  response.write "<td>" & rs("dato") & "</td>"
  response.Write "<tr>"
  rs.Movenext
loop
Response.Write "</table>"
%>
Avatar billede landsten Nybegynder
12. februar 2004 - 16:35 #8
ny fejl

Fejltype:
ADODB.Connection (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.
/hemlig/gamle.asp, line 9
Avatar billede landsten Nybegynder
12. februar 2004 - 16:38 #9
undskyld men er jeg ved at trætte dig for der kommer en ny fejl

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near '(CUR_DATE(),dato) >= 40' at line 1
/hemlig/gamle.asp, line 8


her er et gammelt der virker men den henter noget andet

<%
set rs = server.createObject("adodb.connection")
rs.open "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase &";uid="& SQLlogin &";pwd="& SQLpassword
sql = "select id, banner from banner order by id desc"
set rs = rs.execute(sql)

response.write "<table>"
while not rs.eof
response.write "<tr><td>" & rs.fields("id") & "</td><td>" & rs.fields("banner") & "</td></tr>"
rs.movenext
wend
%>
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:40 #10
Ved du hvilken version af mySQL du har?
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:40 #11
og hvilken type er dato kolonne DATE ?
Avatar billede landsten Nybegynder
12. februar 2004 - 16:42 #12
date time jeg er ikke sikker på hvad version det er men mener det er noget med 4
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:46 #13
ok prøv lige at rette denne:

SQL = "select * from webmaster where DateDiff(CUR_DATE(),dato) >= 40"

til disse linjer:

dato = DateAdd("d",-40,Date)
dato = Year(dato)&"-"&Right("0"&Month(dato),2)&"-"&Right("0"&Day(dato),2)
SQL = "select * from webmaster where dato <= '" & dato & "'"
Avatar billede landsten Nybegynder
12. februar 2004 - 16:48 #14
fejl

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0409)
Strengkonstanten er uafsluttet
/hemlig/gamle.asp, line 8, column 59
SQL = "select * from webmaster where dato <= '" & dato & "'
----------------------------------------------------------^
Avatar billede landsten Nybegynder
12. februar 2004 - 16:49 #15
kan det have noget at gøre med at der er en 40-50 stykker der ikke har dato på
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:50 #16
ja måske men ikke den sidste fejl:

Der mangler et " efter "'
SQL = "select * from webmaster where dato <= '" & dato & "'
Sådan her:
SQL = "select * from webmaster where dato <= '" & dato & "'"
Avatar billede landsten Nybegynder
12. februar 2004 - 16:52 #17
ups eller kan det have noget at gøre med når jeg kopier her fra og sætter det ind et andet sted så laver den jo ikke nødventige mellemrum?
Avatar billede landsten Nybegynder
12. februar 2004 - 16:53 #18
fejl efter jeg satte " ind

Fejltype:
ADODB.Recordset (0x800A0CC1)
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
/hemlig/gamle.asp, line 15
Avatar billede eagleeye Praktikant
12. februar 2004 - 16:56 #19
Ok så der hul til databasen.

Det betyder en af disse kolonnenavn XXX i rs("XXX") ikke findes i databasen.:

  response.write "<td>" & rs("id") & "</td>"
  response.write "<td>" & rs("sideID") & "</td>"
  response.write "<td>" & rs("bruger") & "</td>"
  response.write "<td>" & rs("email") & "</td>"
  response.write "<td>" & rs("dato") & "</td>"
Avatar billede landsten Nybegynder
12. februar 2004 - 17:01 #20
undskyl jeg har fundet fejlen det er fordi det er to forskællige tabeller den ene er webmaster og den anden er sider og i dem begge er der en der hedder id
Avatar billede landsten Nybegynder
12. februar 2004 - 17:03 #21
det hjalp da jeg fjernede sideID men hvordan f... få jeg så af hvide hvad dere side id er, nu har jeg deres bruger id
Avatar billede eagleeye Praktikant
12. februar 2004 - 17:04 #22
Ok :)

Det er i tabelen side ?? hvordan hænger de to tabeller sammen så kan man lave en LEFT JOIN af de to
Avatar billede eagleeye Praktikant
12. februar 2004 - 17:07 #23
Eks hvis det er brugerID

SQL = "select webmaster.*, side.sideid from webmaster left join side on webmaster.brugerid = side.brugerid where webmaster.dato <= '" & dato & "'"
Avatar billede landsten Nybegynder
12. februar 2004 - 17:11 #24
okay hvor sætter jge den ind
Avatar billede eagleeye Praktikant
12. februar 2004 - 17:13 #25
I stedet for denne linje:

SQL = "select * from webmaster where dato <= '" & dato & "'"
Avatar billede landsten Nybegynder
12. februar 2004 - 17:15 #26
jeg tror ikke det kan lade sig gøre ?

men kan jeg nå at sætte mere på den for så ville jeg gerne have at den kun hentede dem frem hvis de ikke havde haft nogen hits i 40 dage hits ligger i tabellen sider og rekken heder hits  ;-)
Avatar billede landsten Nybegynder
12. februar 2004 - 17:15 #27
fejl kommer så

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[TCX][MyODBC]Table 'popper.side' doesn't exist
/hemlig/gamle.asp, line 9
Avatar billede eagleeye Praktikant
12. februar 2004 - 17:18 #28
hmm umidelbart betyder de den ikke kan finde en tabel som hedde popper.
Mogle gange er mySQL casesenativ så hvis den såt med stort P så prøv at skrive det Popper
Avatar billede landsten Nybegynder
12. februar 2004 - 17:24 #29
okay nu ser det sådan ud


<%
set conn = server.createObject("adodb.connection")
conn.open "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase &";uid="& SQLlogin &";pwd="& SQLpassword

dato = DateAdd("d",-40,Date)
dato = Year(dato)&"-"&Right("0"&Month(dato),2)&"-"&Right("0"&Day(dato),2)
SQL = "select webmaster.*, sider.sideID from webmaster left join sider on webmaster.brugerid = side.brugerid where webmaster.dato <= '" & dato & "'"
Set rs = Conn.Execute(SQL)
Response.Write "<table>"
Response.Write "<tr><td>id</td><td>bruger</td><td>email</td><td>dato</td></tr>"
do while not rs.EOF
  response.Write "<tr>"
  response.write "<td>" & rs("id") & "</td>"
  response.write "<td>" & rs("bruger") & "</td>"
  response.write "<td>" & rs("email") & "</td>"
  response.write "<td>" & rs("dato") & "</td>"
  response.Write "<tr>"
  rs.Movenext
loop
Response.Write "</table>"
%>

og der kommer fejl

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[TCX][MyODBC]Unknown column 'sider.sideID' in 'field list'
/hemlig/gamle.asp, line 9
Avatar billede eagleeye Praktikant
12. februar 2004 - 17:31 #30
Hedder kolonnen sideID eller sideid?
eller hedder den bare id?
sider.ID
Avatar billede landsten Nybegynder
12. februar 2004 - 17:31 #31
mange tak jeg har hittet den du har fortjænt din point.
kom med et svar
Avatar billede eagleeye Praktikant
12. februar 2004 - 17:45 #32
Ok :)
her er et svar.
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