Avatar billede fun22 Nybegynder
23. april 2003 - 09:35 Der er 8 kommentarer og
3 løsninger

asp og mysql

Hej

Jeg skal til at over på mysql istedet på access men hvordan komemer denne streng til at se ud når det skal være en mysql database den skal oprette forbindelse til??

<%
'Åbner connection til databasen
'Hvis brugeren har submittet formularen
    if Request.ServerVariables("REQUEST_METHOD") = "POST" then

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\WEB\ZIG-SOFTWARE.DK_I5Z5ER\db\data.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
   
'Tjecker om felterne er udfyld
    if (Request.Form("title") <> "" AND Request.Form("nyhed") <> "" AND Request.Form("forfatter") <> "") then
   
'Tilføjer brugeren til databasen
    Set rs1 = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from projekter"
    rs1.Open strsql, conn, 1, 3
   
'Tilføjer brugeren til databasen og sender ham/hende til login siden
    rs1.AddNew
    rs1("titel") = Server.HTMLEncode(Request("title"))
    rs1("projekt") = (Request("nyhed"))
    rs1("skrevet_af") = Server.HTMLEncode(Request("forfatter"))
    rs1.update
   
    Response.Write("<strong><font color='red'>Du har sendt formen!</font></strong>")
   
    rs1.Close
    set rs1 = nothing
   
    else
    Response.Write("<strong><font color='red'>Du mangler at udfylde felter!</font></strong>")
   
    end if
    end if
%>

Koden skal jo stadigvæk være asp og IKKE php
Avatar billede rune_c Nybegynder
23. april 2003 - 09:46 #1
sådan noget ligende


<%

'Tjecker om felterne er udfyld
    if (Request.Form("title") <> "" AND Request.Form("nyhed") <> "" AND Request.Form("forfatter") <> "") then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Driver={mySQL}; Server=host.domain.com; Port=3306; Option=131072; Stmt=; Database=DatabaseNavn; uid=Brugernavn; pwd=Adgangskode;"
)

Conn.Execute("insert into projekter (titel, projekt, skrevet_af) values ('"& Server.HTMLEncode(Request("title")) &"','"& Request("nyhed") &"','"& Server.HTMLEncode(Request("forfatter")) &"');")

Response.Write("<strong><font color='red'>Du har sendt formen!</font></strong>")

Conn.Close
Set Conn = nothing
   
    else
    Response.Write("<strong><font color='red'>Du mangler at udfylde felter!</font></strong>")
   
    end if
    end if
%>
Avatar billede eagleeye Praktikant
23. april 2003 - 09:47 #2
Din connection streng bliver noget med:


<%
  strDSN = "DRIVER={MySql}; SERVER=mysql.dit-domaene.dk; DATABASE=SQLBrugernavn; UID=SQLBrugernavn; PWD=SQLKodeord"
%>


Resten skulle du gerne kunne bruge unden problem.
Avatar billede hossein Nybegynder
23. april 2003 - 09:50 #3
ASP er bare en format, du skal bare lave en db forbindelse:
    Dim strConn
    strDatabaseIP = "129.299.299.129"
    strUID = "root"
    strPWD = ""
    strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & strDatabaseIP & ";DATABASE=AccountManager;UID=" & strUID & ";PWD=" & strPW & ";OPTION=35;"
    Set objConn = server.CreateObject("ADODB.Connection")
    Set rec = Server.CreateObject("ADODB.Recordset")
    strSQL = "Select * from minTabel"
    Set rec = objConn.Execute(strSQL)
Avatar billede fun22 Nybegynder
23. april 2003 - 16:38 #4
hvad så hvis jeg skal hente noget ud fra databasen??
Avatar billede eagleeye Praktikant
23. april 2003 - 17:15 #5
Så laver du bare en SQL og bruger et recordset som hvis det var Access.:

strDSN = "DRIVER={MySql}; SERVER=mysql.dit-domaene.dk; DATABASE=SQLBrugernavn; UID=SQLBrugernavn; PWD=SQLKodeord"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN

SQL = "SELECT * FROM tabel WHERE kolonne = 2"
Set rs = Conn.Execute(SQL)
do while not rs.EOF
  response.write rs("kolonnenavn") & "<br>"
  rs.Movenext
loop
Avatar billede eagleeye Praktikant
23. april 2003 - 17:18 #6
Der er lidt forskel på Access og mySQL i Access SQL bruger man TOP 10 hvis man vil hendte de 10 første i mySQL hedder det LIMIT 1,10 og sætte til sidst i SQL sætningen.

SQL = "SELECT * FROM tabel WHERE kolonne=2 LIMIT 1,10"

De 2 tal i efter LIMIT angiver henholdsvis strat og antal man vil havde ud. Så hvis man vil havde record nr 5 og de næste 8 skriver man:
SQL = "SELECT * FROM tabel WHERE kolonne=2 LIMIT 5,8"
Avatar billede eagleeye Praktikant
23. april 2003 - 17:20 #7
Du kan evt prøve at kigge på dette eks med mySQL og paging. Det benytter LIMIT til at lave paging med: http://activedeveloper.dk/aspdigital/2001112301.asp
Avatar billede fun22 Nybegynder
24. april 2003 - 16:19 #8
synes selv det går ret godt, men hvad er der galt med den her??

Conn.Execute("UPDATE users WHERE id = "& Session("username") &" (pwd, alder, email, hjemmeside, tekst) values ('"& Server.HTMLEncode(Request("adgangskode")) &"','"& Request("alder") &"','"& Server.HTMLEncode(Request("email")) &"','"& Server.HTMLEncode(Request("hjemmeside")) &"','"& Server.HTMLEncode(Request("fri_tekst")) &"');")

Fejl:
[TCX][MyODBC]You have an error in your SQL syntax near 'WHERE id = 'Admin' (pwd, alder, email, hjemmeside, tekst) values ('tino3099','15' at line 1
Avatar billede eagleeye Praktikant
24. april 2003 - 16:42 #9
En UDPATE skal se sådan her ud:

UPDATE tabel SET kolonne1='data', kolonne2='data', kolonne3='data' WHERE id = xx

Så din SQL bliver noget med:

Conn.Execute("UPDATE users pwd = '" & Server.HTMLEncode(Request("adgangskode")) & "', alder = '" & Request("alder") & "', email = '"& Server.HTMLEncode(Request("email")) &"', hjemmeside = '"& Server.HTMLEncode(Request("hjemmeside")) &"', tekst = '"& Server.HTMLEncode(Request("fri_tekst")) & "' WHERE id = "& Session("username") &";")
Avatar billede eagleeye Praktikant
24. april 2003 - 16:42 #10
Du kan se syntaxen for UPDATE her:
http://www.w3schools.com/sql/sql_update.asp
Avatar billede fun22 Nybegynder
25. april 2003 - 07:45 #11
hvad er der galt her?
    SQL = "SELECT * FROM nyheder ORDER by id DESC LIMIT 1,10"
    Set rs = Conn.Execute(SQL)

Den sortere det slet ikke. I tabellen nyheder starter de med id 1 og slutter med 13 men det står hulter til bulter når den udskriver det. Why??
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