webForumDet fria alternativet

snälla! jag fattar inte! är det sql:en som e knas?

ASP

22 svar · 321 visningar · startad av MoonCow

Medlem sedan juni 2001223 inlägg
Frågan#1

Hej alla gurus =D!
Ok, nu är det så att jag vill ha en admin sida till min gästbok där jag genom att bara klicka på en länk tar bort posten om den är olämpig eller så...

Har detta i början på min sida:

----------------------------------------
<%IF (Request.Querystring("delete")="true") THEN
Set Conn = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")

strSQL = "DELETE FROM gastboken WHERE id = ''" & ID & "''"

Conn.Execute(strSQL)

Response.Redirect "gbokradera.asp"

RecSet.Close
Conn.Close

END IF%>
----------------------------------------

Och du en länk som ser ut så här:

----------------------------------------
gbokradera.asp?delete=true&ID=" & RecSet("id") & "
----------------------------------------

Men... det funkar inte. Har verkligen ansträngt mig för att få det att funka. låtit farsan felsöka den. Han e programerare, visserligen i c++ och vb men han kunde inte heller hitta felet...
Så hoppas att ni kan se feletm och tack på förhand...

------------------
:: är inte gul snö ::

Medlem sedan juni 200032 967 inlägg
#2
strSQL = "DELETE FROM gastboken WHERE id = " & ID

utgår ifrån att id är numeriskt (tal eller räknare).

  1. länken ser konstig ut. är det där hela länken? i så fall borde den se ut så här:
gbokradera.asp?delete=true&ID=" & RecSet("id")

använd gärna wF-kod, exempelvis kod-taggarna, så är det lättare att läsa din kod.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 200032 967 inlägg
#3

och förresten, var definierar du variabeln ID som du använder i sql-frågan? jag kan inte se att du ger den ett värde, vilket innebär att den är tom.

får du något felmeddelande när du kör din kod, så inkludera alltid detta i ditt inlägg.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 2001223 inlägg
#4

Tack för svaret! Ska tänka på det med koden i fortsättningen...
Men blir inte id fylld med det som finns i recordseten, altså id:n?

Det blir inget felmedelande... det lixom bara händer ingen när jag försöker ta bort en post.

------------------
:: är inte gul snö ::

Medlem sedan juni 200032 967 inlägg
#5

du måste ge ID ett värde innan du kan använda variabeln, exempelvis med

ID = request.querystring("ID")

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 2001223 inlägg
#6

ok... det verkar funka bättre nu iaf.

Får detta felmedelandet... verkar inte gilla att databasen öppnas två grr eller nått...

Error Type:
ADODB.Connection (0x800A0E79)
Operation is not allowed when the object is open.
/mooncow/gbokradera666.asp, line 14

PÅ rad 14 står det:

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"

Innan så hände det ju inget alls. Nu verkar den iaf göra nått, och misslyckas men ändå...

------------------
:: är inte gul snö ::

Medlem sedan juni 200032 967 inlägg
#7

verkar inte gilla att databasen öppnas två grr eller nått...
precis.... gör du det? varför?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 2001223 inlägg
#8

behöver jag inte göra det... kan jag ta bort

<%IF (Request.Querystring("delete")="true") THEN
-------------------------------
	Set Conn = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"
	Set RecSet = Server.CreateObject("ADODB.Recordset")
---------------------------------
	
ID = request.querystring("ID")

strSQL = "DELETE FROM gastboken WHERE id = " & ID 

Conn.Execute(strSQL)

Response.Redirect "gbokradera666.asp"

RecSet.Close
Conn.Close

END IF%>

De innom -----------... kan jag ta bort dom. Ska testa...

------------------
:: är inte gul snö ::

Medlem sedan juni 2001223 inlägg
#9

eller ska jag kanske bara ta bort

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"

------------------
:: är inte gul snö ::

Medlem sedan juni 200032 967 inlägg
#10

du kanske ska bestämma dig för vad du ska kalla ditt connectionobjekt...

Set Conn = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 200032 967 inlägg
#11

annars, posta hela koden så får vi se vad du gör för knasigheter.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 2001223 inlägg
#12

oj jo tabbe att ha olika namn, men det hjäpte inte =(
ok här kommer min kod:

<!-- #include file="adovbs.inc" -->

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Addera = "SELECT * FROM gastboken ORDER BY datum DESC" 
	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>

<%IF (Request.Querystring("delete")="true") THEN
	Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	
ID = request.querystring("ID")

strSQL = "DELETE FROM gastboken WHERE id = " & ID 

Conn.Execute(strSQL)

Response.Redirect "gbokradera666.asp"

RecSet.Close
Conn.Close

END IF%>
	
	
	
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="5" topmargin="5" onLoad="MM_preloadImages('top2.gif','indexknappg.gif','egoknappg.gif','bilderknappg.gif','lankarknappg.gif','gastbokknappg.gif')">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font> 
<table width="80%" border="0" cellspacing="0" cellpadding="0" height="180">
  <tr> 
    <td width="9%" height="96" valign="bottom" align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><img src="menytop.gif"></font></td>
    <td width="4%" height="96">&nbsp;</td>
    <td width="80%" height="96" valign="bottom"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0" height="78">
        <tr> 
          <td width="55%" rowspan="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="top2.gif" width="432" height="94"></font></td>
          <td width="45%" height="66" valign="bottom" background="tblbakuppe.gif">&nbsp;</td>
        </tr>
        <tr>
          <td width="45%" height="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="hbotten.gif" width="220" height="28"></font></td>
        </tr>
      </table>
    </td>
    <td width="7%" height="96">&nbsp;</td>
  </tr>
  <tr> 
    <td width="9%" height="33"style="BORDER-RIGHT: #4A4A4A 1px solid; BORDER-LEFT: #4A4A4A 1px solid" align="right" valign="top"> 
      <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><a href="index.asp"><img src="indexknapp.gif" width="60" height="13" name="Image1" border="0" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','indexknappg.gif',1)"></a><br>
        <a href="info.asp"><img src="egoknapp.gif" width="60" height="9" name="Image2" border="0" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','egoknappg.gif',1)"></a><br>
        <a href="portfolio.asp"><img src="portolioknapp.gif" width="60" border="0" height="9" name="Image6" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image6','','portolioknappg.gif',1)"></a><BR>
        <a href="bilder.asp"><img src="bilderknapp.gif" width="60" height="9" name="Image3" border="0" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','bilderknappg.gif',1)"></a><br>
        <a href="lankar.asp"><img src="lankarknapp.gif" width="60" height="10" name="Image4" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image4','','lankarknappg.gif',1)" border="0"></a><br>
        <a href="gbok.asp"><img src="gastbokknapp.gif" width="60" height="8" name="Image5" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image5','','gastbokknappg.gif',1)" border="0"></a></font></div>
    </td>
    <td width="4%" height="33">&nbsp;</td>
    <td width="80%"style="BORDER-RIGHT: #4A4A4A 1px solid; BORDER-LEFT: #4A4A4A 1px solid" height="33" valign="top"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="2" height="71">
        <tr> 
          <td width="76%" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">&raquo; 
            <font color="#26B931"><b>G&auml;stboken</b></font> <br>
            <br>
            V&auml;lkommen till min g&auml;stbok! Typ de e lixom tv&aring;ng att 
            skirva s&aring; <font color="#FF66CC">G&Ouml;R DET</font>. Positivt 
            som negativt vill jag h&ouml;ra. Men du, <font color="#FF3300">konstruktiv</font> 
            kritik isf...<br>
            <br>
            <br>
            <br>
            </font> 
            <% Do Until RecSet.EOF %>
            <table width="65%" border="0" cellspacing="0" cellpadding="1" align="center" height="90">
              <tr>
                <td bgcolor="#000000" height="79"> 
                  <table width="100%" border="0" cellspacing="0" cellpadding="1" height="53">
                    <tr bgcolor="#FFFFFF"> 
                      <td width="7%" height="36" valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="<%=RecSet("bild")%>" height="15" width="15"></font></td>
                      <td width="93%" height="36" valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">&raquo;<font color="#26B931"> 
                        <b><%=Server.HTMLEncode(RecSet("rubrik"))%></b></font><br>
                        <br>
                        <%=Server.HTMLEncode(RecSet("medelande"))%></font></td>
                    </tr>
                    <tr bgcolor="#FFFFFF"> 
                      <td width="7%" height="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"></font></td>
                      <td width="93%" height="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
                        skrev: <%=Server.HTMLEncode(RecSet("namn"))%> - <%=RecSet("datum")%> 
                        <a href='gbokradera666.asp?delete=true&ID=%22%20&%20RecSet(%22id%22)'>Ta 
                        bort</a> </font></td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
            <br>
            <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> 
            <% 
			RecSet.MoveNext
Loop
RecSet.Close %>
Tar bara med så långt det är nån asp...

------------------
:: är inte gul snö ::

Medlem sedan juni 200032 967 inlägg
#13

byt ut detta avsnitt:

<%IF (Request.Querystring("delete")="true") THEN
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")

ID = request.querystring("ID")

strSQL = "DELETE FROM gastboken WHERE id = " & ID 

Conn.Execute(strSQL)

Response.Redirect "gbokradera666.asp"

RecSet.Close
Conn.Close

END IF%>

till

<%
IF (Request.Querystring("delete")="true") THEN
ID = request.querystring("ID")

strSQL = "DELETE FROM gastboken WHERE id = " & ID 

Connect.Execute(strSQL)

RecSet.Close
Connect.Close

Response.Redirect "gbokradera666.asp"

END IF
%>

du måste stänga objekten innan redirect, annars stängs de aldrig.

testa detta. får du fortfarande fel?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

[Redigerat av @nders den 26 jun 2001]

Medlem sedan juni 2001223 inlägg
#14

oj kanske för svårt att läsa...

<!-- #include file="adovbs.inc" -->

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Addera = "SELECT * FROM gastboken ORDER BY datum DESC" 
	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>

<%IF (Request.Querystring("delete")="true") THEN
	Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("gastboken.mdb")&";"
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	
ID = request.querystring("ID")

strSQL = "DELETE FROM gastboken WHERE id = " & ID 

Conn.Execute(strSQL)

Response.Redirect "gbokradera666.asp"

RecSet.Close
Conn.Close

END IF%>
	
	
	
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="5" topmargin="5" <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font> 
<table width="80%" border="0" cellspacing="0" cellpadding="0" height="180">
  <tr> 
    <td width="9%" height="96" valign="bottom" align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><img src="menytop.gif"></font></td>
    <td width="4%" height="96">&nbsp;</td>
    <td width="80%" height="96" valign="bottom"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0" height="78">
        <tr> 
          <td width="55%" rowspan="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="top2.gif" width="432" height="94"></font></td>
          <td width="45%" height="66" valign="bottom" background="tblbakuppe.gif">&nbsp;</td>
        </tr>
        <tr>
          <td width="45%" height="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="hbotten.gif" width="220" height="28"></font></td>
        </tr>
      </table>
    </td>
    <td width="7%" height="96">&nbsp;</td>
  </tr>
  <tr> 
    <td width="9%" height="33"style="BORDER-RIGHT: #4A4A4A 1px solid; BORDER-LEFT: #4A4A4A 1px solid" align="right" valign="top"> 
      <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><a href="index.asp"><img src="indexknapp.gif" width="60" height="13" name="Image1" border="0" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','indexknappg.gif',1)"></a><br>
        <a href="info.asp"><img src="egoknapp.gif" width="60" height="9" name="Image2" border="0" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','egoknappg.gif',1)"></a><br>
        <a href="portfolio.asp"><img src="portolioknapp.gif" width="60" border="0" height="9" name="Image6" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image6','','portolioknappg.gif',1)"></a><BR>
        <a href="bilder.asp"><img src="bilderknapp.gif" width="60" height="9" name="Image3" border="0" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','bilderknappg.gif',1)"></a><br>
        <a href="lankar.asp"><img src="lankarknapp.gif" width="60" height="10" name="Image4" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image4','','lankarknappg.gif',1)" border="0"></a><br>
        <a href="gbok.asp"><img src="gastbokknapp.gif" width="60" height="8" name="Image5" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image5','','gastbokknappg.gif',1)" border="0"></a></font></div>
    </td>
    <td width="4%" height="33">&nbsp;</td>
    <td width="80%"style="BORDER-RIGHT: #4A4A4A 1px solid; BORDER-LEFT: #4A4A4A 1px solid" height="33" valign="top"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="2" height="71">
        <tr> 
          <td width="76%" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">&raquo; 
            <font color="#26B931"><b>G&auml;stboken</b></font> <br>
            <br>
            V&auml;lkommen till min g&auml;stbok! Typ de e lixom tv&aring;ng att 
            skirva s&aring; <font color="#FF66CC">G&Ouml;R DET</font>. Positivt 
            som negativt vill jag h&ouml;ra. Men du, <font color="#FF3300">konstruktiv</font> 
            kritik isf...<br>
            <br>
            <br>
            <br>
            </font> 
            <% Do Until RecSet.EOF %>
            <table width="65%" border="0" cellspacing="0" cellpadding="1" align="center" height="90">
              <tr>
                <td bgcolor="#000000" height="79"> 
                  <table width="100%" border="0" cellspacing="0" cellpadding="1" height="53">
                    <tr bgcolor="#FFFFFF"> 
                      <td width="7%" height="36" valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="<%=RecSet("bild")%>" height="15" width="15"></font></td>
                      <td width="93%" height="36" valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">&raquo;<font color="#26B931"> 
                        <b>

<%=Server.HTMLEncode(RecSet("rubrik"))%></b></font><br>
                        <br>
                        <%=Server.HTMLEncode(RecSet("medelande"))%>
------------
recordsets

</font></td>
                    </tr>
                    <tr bgcolor="#FFFFFF"> 
                      <td width="7%" height="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"></font></td>
                      <td width="93%" height="2"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
                        skrev: 

<%=Server.HTMLEncode(RecSet("namn"))%> - <%=RecSet("datum")%> 
------------------
recordesets

---------------------
<a href='gbokradera666.asp?delete=true&ID=%22%20&%20RecSet(%22id%22)'>Ta 
                        bort</a> 
------------------------
länken
</font></td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
            <br>
            <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> 
            <% 
			RecSet.MoveNext
Loop
RecSet.Close %>

------------------
:: är inte gul snö ::

Medlem sedan juni 2001223 inlägg
#15

ska kolla...

------------------
:: är inte gul snö ::

Medlem sedan juni 2001223 inlägg
#16
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression 'id = "'.
/mooncow/gbokradera666.asp, line 17

nä... är det med id rätt?

------------------
:: är inte gul snö ::

Medlem sedan juni 2001223 inlägg
#17

rad 17:

Connect.Execute(strSQL)

om du ville ha det...

------------------
:: är inte gul snö ::

Medlem sedan juni 200032 967 inlägg
#18

finns id med i länken?

felmeddelandet tyder på att Request.Querystring("ID") är tomt.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan jan. 20011 154 inlägg
#19
<a href='gbokradera666.asp?delete=true&ID=<%=RecSet("id")%>'>

istället för

<a href='gbokradera666.asp?delete=true&ID=%22%20&%20RecSet(%22id%22)'>

------------------

Thou shalt see a doctor and get rid of it if thou sufferest from
"Pop-Up Window Madness". Pop-ups are not meant to be used as a way
to get to the next page.

Medlem sedan juni 2001223 inlägg
#20

måste vara dreamweaver som gjorde det...
nu står det så här (hör dig nästan sucka)

Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: 'Conn'
/mooncow/gbokradera666.asp, line 20
Conn.Close

på rad 20....

------------------
:: är inte gul snö ::

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)