Avatar billede visual Nybegynder
30. november 2002 - 00:53 Der er 45 kommentarer og
1 løsning

Nybegynder i mySQL og ASP har brug for lidt hjælp.

Goaften alle.

Jeg har lige lavet en mySQL database som hedder testdb og min table hedder testtable.
Nu er det sådan jeg gerne vil hive data ud fra:
ID
title
maintext

og hvordan gør jeg det så jeg kan se det på en asp side. ?
Avatar billede thomas_yde Nybegynder
30. november 2002 - 01:08 #1
Det første du skal gøre er at lave en forbindelse til databasen det gør du sådan her:

set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=server_ip; port=3306;Database=testdb;uid=dit_brugernavn;pwd=dit_password"

Her skal du udskifte:
server_ip -> til den ip din mySql server har
dit_brugernavn -> til det brugernavn du bruger til databasen
dit_password -> til det password der matcher dit brugernavn

Efter dette er gjort kan du udføre querys mod databasen:
Først sætter vi en variabel til at indeholde din query:
strSQL = ”SELECT ID,title,maintext FROM testdb”

Og udføre queryen :
set rs = Conn.Execute(strSQL)

Herefter kan vi bladre i resultaterne:

while not rs.EOF
Response.Write(”ID på feltet er:” & rs(“ID”) & ”<br>”)
Response.Write(”title:” & rs(“title”) &  “<br>”)
Response.Write(”maintext:” & rs(“maintext”) & “<br>”)
Wend

Og vi lukker forbindelsen til databasen igen
Conn.close
Set rs = nothing
Avatar billede thomas_yde Nybegynder
30. november 2002 - 01:09 #2
Håber det hjalp dig lidt på vej
Avatar billede visual Nybegynder
30. november 2002 - 01:25 #3
Error Type:
Microsoft VBScript compilation (0x800A0408)
Invalid character
/test.asp, line 12, column 9
strSQL = ”SELECT ID,title,maintext FROM testdb”
--------^
Avatar billede visual Nybegynder
30. november 2002 - 01:27 #4
<%
set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=server_ip; port=3306;Database=testdb;uid=USERNAME;pwd=PASSWORD"
strSQL = ”SELECT ID,title,maintext FROM testdb”
set rs = Conn.Execute(strSQL)
while not rs.EOF
Response.Write(”ID på feltet er:” & rs(“ID”) & ”<br>”)
Response.Write(”title:” & rs(“title”) &  “<br>”)
Response.Write(”maintext:” & rs(“maintext”) & “<br>”)
Wend

Conn.close
Set rs = nothing
%>
Avatar billede visual Nybegynder
30. november 2002 - 01:46 #5
Kan du ikke hjælpe. ?
Avatar billede thomas_yde Nybegynder
30. november 2002 - 01:51 #6
2 sek kigger lige på det, sad lige og halvsov :)
Avatar billede visual Nybegynder
30. november 2002 - 01:53 #7
Okay.
Avatar billede thomas_yde Nybegynder
30. november 2002 - 01:58 #8
prøv at kopier dette ind:

sql = "Select ID,titel,maintext from testdb"
Avatar billede thomas_yde Nybegynder
30. november 2002 - 01:59 #9
Af en eller anden grundt ser det ud til dine " er forskellige. Men ved ikke om det er derfor din sætning ser fornuftig ud.
Avatar billede visual Nybegynder
30. november 2002 - 01:59 #10
Error Type:
Microsoft VBScript compilation (0x800A0408)
Invalid character
/test.asp, line 15, column 15
Response.Write(”ID:” & rs(“ID”) & “<br>”)
--------------^
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:04 #11
hmm det er sikkert pga word det siger det,
prøv at lave alle dine " om til til " :)

Word har left(") og right(") og det kan asp ikke fortolke.
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:04 #12
så du skal nok igang med search/replace ” med "
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:07 #13
Det beklager jeg. Det er pga. microsoft word.

Jeg havde skrevet en lang besked her men så pga jeg gik tilbage og frem i browseren blev beskeden slette, så besluttede jeg at skrive den i word istedet. Og så lave lidt c/p
Avatar billede visual Nybegynder
30. november 2002 - 02:08 #14
Prøv lige at skriv den fulde kode:

<%
set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=localhost;port=3306;Database=testdb;uid=USERNAME;pwd=PASSWORD"
sql = "Select ID,titel,maintext from testdb"
set rs = Conn.Execute(strSQL)
while not rs.EOF
Response.Write("ID:" & rs("ID") & "<br>")
Response.Write("title:" & rs("title”) &  "<br>")
Response.Write("maintext:" & rs("maintext") & "<br>")
Wend
Conn.close
Set rs = nothing
%>
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:11 #15
<%
set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=localhost;port=3306;Database=testdb;uid=USERNAME;pwd=PASSWORD"
sql = "Select ID,titel,maintext from testdb"
set rs = Conn.Execute(strSQL)
while not rs.EOF
Response.Write("ID:" & rs("ID") & "<br>")
Response.Write("title:" & rs("title") &  "<br>")
Response.Write("maintext:" & rs("maintext") & "<br>")
Wend
Conn.close
Set rs = nothing
%>

Dur det ikke ?
Avatar billede visual Nybegynder
30. november 2002 - 02:12 #16
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/test.asp, line 12
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:16 #17
ok så er vi videre.
Du skal have myODBC driver installeret før ASP kan snakke med mySQL du kan downloade dem her: http://www.mysql.com/ i højre side er der et link MyODBC 2.50 2.50.39 den skal du hente og installere.
Avatar billede visual Nybegynder
30. november 2002 - 02:17 #18
Okay.
Avatar billede visual Nybegynder
30. november 2002 - 02:21 #19
Installeret.
Men så kom den her:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E0C)
Command text was not set for the command object.
/test.asp, line 14
Avatar billede visual Nybegynder
30. november 2002 - 02:23 #20
Har du MSN eller icq. ?
Måske det ville være lidt nemmer end det her. ?
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:24 #21
prøv at fjerne port=3306
Avatar billede visual Nybegynder
30. november 2002 - 02:26 #22
Det hjalp ikke.
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:28 #23
har du indtastet noget i databasen
Avatar billede visual Nybegynder
30. november 2002 - 02:29 #24
Ja.
Avatar billede visual Nybegynder
30. november 2002 - 02:31 #25
Database hedder: testdb
Table hedder: testtable
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:34 #26
jeg har ikke set den fejl før. Checker lige nogle sider
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:35 #27
ah
selvfølgelig

så er det
sql = "Select ID,titel,maintext from testtable"
Min fejl jeg er lidt træt :D
Avatar billede visual Nybegynder
30. november 2002 - 02:36 #28
Skete ikke meget.
Avatar billede thomas_yde Nybegynder
30. november 2002 - 02:37 #29
´kom der en anden fejl?
Avatar billede visual Nybegynder
30. november 2002 - 02:45 #30
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E0C)
Command text was not set for the command object.
/test.asp, line 14
Avatar billede thomas_yde Nybegynder
30. november 2002 - 12:39 #31
hvad er der på linje 14
Avatar billede visual Nybegynder
30. november 2002 - 12:48 #32
set rs = Conn.Execute(strSQL)
Avatar billede thomas_yde Nybegynder
30. november 2002 - 12:52 #33
har du ikke ændret strSQL til sql ?
Avatar billede thomas_yde Nybegynder
30. november 2002 - 12:53 #34
<%
set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=localhost;port=3306;Database=testdb;uid=USERNAME;pwd=PASSWORD"
sql = "Select ID,titel,maintext from testdb"
set rs = Conn.Execute(sql)
while not rs.EOF
Response.Write("ID:" & rs("ID") & "<br>")
Response.Write("title:" & rs("title") &  "<br>")
Response.Write("maintext:" & rs("maintext") & "<br>")
Wend
Conn.close
Set rs = nothing
%>
Avatar billede visual Nybegynder
30. november 2002 - 12:59 #35
Nu er den der næsten:


Error Type:
Active Server Pages, ASP 0113 (0x80004005)
The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools.
/test.asp
Avatar billede thomas_yde Nybegynder
30. november 2002 - 13:01 #36
hehe :))
Det er klart.
<%
set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=localhost;port=3306;Database=testdb;uid=USERNAME;pwd=PASSWORD"
sql = "Select ID,titel,maintext from testdb"
set rs = Conn.Execute(sql)
while not rs.EOF
Response.Write("ID:" & rs("ID") & "<br>")
Response.Write("title:" & rs("title") &  "<br>")
Response.Write("maintext:" & rs("maintext") & "<br>")
rs.movenext
Wend
Conn.close
Set rs = nothing
%>
Avatar billede thomas_yde Nybegynder
30. november 2002 - 13:03 #37
Endnu et eksempel på at det er bedre for mig at gå tidligere i seng end at blive oppe hele natten og kode. Der kommer for mange "smuttere".

Du manglede rs.movenext som flytter curseren til næste tuble i dit resultset. Hvis den ikke er med vil den gå ind i en uendelig løkke og der vil være en timeout som du så på scriptet.
Avatar billede visual Nybegynder
30. november 2002 - 13:04 #38
Jubiiiiii det dur. :-)
Hvis jeg så vil have det ud i tabeller hvad er det så for en kode der skal stå i min HTML tabel. ?
Avatar billede thomas_yde Nybegynder
30. november 2002 - 13:08 #39
så skal du fx gøre sådan her:

<html>
<head></head>
<%
function getText
set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=localhost;port=3306;Database=testdb;uid=USERNAME;pwd=PASSWORD"
sql = "Select ID,titel,maintext from testdb"
set rs = Conn.Execute(sql)
while not rs.EOF
  Response.Write("<tr><td>")
  Response.Write("ID:" & rs("ID") & "</td>")
  Response.Write("<td>title:" & rs("title") &  "</td></tr>")
  Response.Write("<tr><td colspan=2>maintext:" & rs("maintext") & "</td></tr>")
  rs.movenext
wend

Conn.close
Set rs = nothing
end function
%>

<body>
<table cellpadding="0" cellspacing="0" border="0">
<%=getText%>
</table>

</body>
</html>
Avatar billede visual Nybegynder
30. november 2002 - 13:18 #40
Kan jeg spørger om en lilille ting mere. ?

Hvordan skriver jeg så ind i min database via en asp side. ?

Hvis der skal flere points til må du lige sige til.
Avatar billede thomas_yde Nybegynder
30. november 2002 - 13:26 #41
hvis du vil skrive i den fx via en form skal du have en html form lille eksempel:
side1.asp:

<html>
<body>
<form action="side2.asp" method="get">
indtast en titel: <input type="text" name="titel"><br>
indtast en tekst til titel: <textarea name="text"></textarea><br>
<input type="submit">
</form>
</body>
</html>

side2.asp :
<html>
<%
titel = Request.QueryString("titel")
text = Request.QueryString("text")

set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={mysql};server=localhost;port=3306;Database=testdb;uid=USERNAME;pwd=PASSWORD"

sql = "Insert into testtable(titel, maintext) values('"& titel &"','" & text &"')"
Conn.Execute(sql)
%>
<body>
Følgende er blevet indsat:<br>
<%=titel%><br>
<%=text%>
</body>
</html>


Jeg går ud fra at dit ID felt er auto_increment i databasen dvs forløbende.
Avatar billede thomas_yde Nybegynder
30. november 2002 - 13:27 #42
hov det skal være sql = "Insert into testtable(title, maintext) values('"& titel &"','" & text &"')"
Avatar billede visual Nybegynder
30. november 2002 - 13:40 #43
Avatar billede thomas_yde Nybegynder
30. november 2002 - 14:35 #44
prøv at ændre det til
Request.Form("titel")
Request.Form("text")
Avatar billede visual Nybegynder
02. december 2002 - 18:30 #45
Det virker ikke.
Avatar billede discowarp9 Nybegynder
02. oktober 2003 - 21:07 #46
Du skal huske at afslutte alle queries til MySQL med et semicolon (;).
F.eks:
strSQL = "Select id, titel, maintext from testdb;"
Set rs = Conn.Execute(strSQL)

Prøv om det virker...
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