Avatar billede none01 Nybegynder
25. februar 2006 - 23:42 Der er 1 kommentar og
1 løsning

Vil ikke skrive til bestemt database?

Hej, jeg har lavet et lille kode hvor man kan vælge en database og så lave en table og 5 columns i den.
Problemet er at hvis jeg vælger alt andet end MySQL i drop down menu'en, vil den ikke køre koden til den database.
Det mest mærkelige er at jeg har prøvet atudskrive Request.Form("database") og den siger den database som man har valgt men den kan vist satdigvæk ikke læse den i min statment. er der måske der ved hvad der er galt?

Det er koden:
<%@ Language=VBScript%>
<!--#include file="config.asp" -->
<%
dim sql_submit
sql_submit = Request.QueryString("submit")
Response.Write(Request.Form("database"))
dim strsql
if sql_submit = "run" and Request.Form("database") = "MySQL" then
strsql = "CREATE TABLE `main_page`.`guestbook` ( "
strsql = strsql & " `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, "
strsql = strsql & "`daten` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`namen` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`email` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`homepage` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`textn` TEXT NOT NULL DEFAULT '', "
strsql = strsql & "PRIMARY KEY(`id`) "
strsql = strsql & ")"
strsql = strsql & "ENGINE = InnoDB;"
con.execute(strsql)
con.close
Response.Write("Request executed")
set con = nothing
elseif submit = "run" and Request.Form("database") = "MSSQL" then
strsql = "CREATE TABLE `main_page`.`guestbook` ( "
strsql = strsql & " `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, "
strsql = strsql & "`daten` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`namen` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`email` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`homepage` VARCHAR(45) NOT NULL DEFAULT '', "
strsql = strsql & "`textn` TEXT NOT NULL DEFAULT '', "
strsql = strsql & "PRIMARY KEY(`id`) "
strsql = strsql & ")"
strsql = strsql & "ENGINE = InnoDB;"
con.execute(strsql)
con.close
Response.Write("Request executed")
set con = nothing
elseif submit = "run" and Request.Form("database") = "Access" then
Response.Write("Here should be a Access sql code")
end if
%>
<html>
<head>
</head>

<body>
<form action="table_create.asp?submit=run" method="post" name="run_sql" >
<table border="0">
<tr><td align="right">Database type: </td><td>
<SELECT name="database"><OPTION value="MySQL" name="database" selected>MySQL</OPTION>
<OPTION value="MSSQL" name="database">MSSQL</OPTION>
<OPTION value="Access" name="database">Access</OPTION></SELECT>
</td></tr>
<tr><td align="right">table name: </td><td><input name="table_name" value="guestbook" ></td></tr>
<tr><td align="right">Column name 1: </td><td><input name="column1" value="daten" ></td><td align="right">Datatype: </td><td><input name="datatype1" value="VARCHAR(45)"></td></tr>
<tr><td align="right">Column name 2: </td><td><input name="column2" value="namen" ></td><td align="right">Datatype: </td><td><input name="datatype2" value="VARCHAR(45)"></td></tr>
<tr><td align="right">Column name 3: </td><td><input name="column3" value="email" ></td><td align="right">Datatype: </td><td><input name="datatype3" value="VARCHAR(45)"></td></tr>
<tr><td align="right">Column name 4: </td><td><input name="column4" value="homepage" ></td><td align="right">Datatype: </td><td><input name="datatype4" value="VARCHAR(45)"></td></tr>
<tr><td align="right">Column name 5: </td><td><input name="column5" value="textn" ></td><td align="right">Datatype: </td><td><input name="datatype5" value="TEXT"></td></tr>
<tr><td></td><td><INPUT type="submit" value="Create" id="submit1" name="run" ></td><td></td></tr>
</table>
</form>
</body>
</html>
Avatar billede eagleeye Praktikant
26. februar 2006 - 17:13 #1
Dit problem er ikke Request.Form("database") men den første del af if sætningen. Din kode ligger Request.QueryString("submit") ind i variablen sql_submit og den føste if tjekker koden rigtigt på variablen sql_submit med i de to andre tilfælde tjekker koden på variablen submit:

elseif submit = "run" and Request.Form("database") = "MSSQL" then


Så det skal rette til:

elseif sql_submit = "run" and Request.Form("database") = "MSSQL" then


Det samme gælder for den sidte som tjekker for "Access":

elseif sql_submit = "run" and Request.Form("database") = "Access" then
Avatar billede none01 Nybegynder
26. februar 2006 - 17:33 #2
Ahh... tak det var vist er meget dum tastefejl som jeg brugt en hel dag på og stadigvæk ikke kunne se den hehe...

tusind tak!
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