Avatar billede mickill Nybegynder
12. august 2002 - 10:44 Der er 7 kommentarer og
1 løsning

Et langt script med fejl !!!!

Jeg har fået fat i det hersens script og jeg kan ikke rigtig få det til at virke.
Problemet opstår i INSERT INTO Sætningen (se kommentar i scriptet).
Jeg får ingen fejlmeddelse, men tilgengæld får jeg heller ikke lagt hverken productname eller productvhsdvd i databasen.

Nu har jeg siddet og rodet med det skide script i jeg ved ikke hvor lang tid, så jeg håber der er nogen som kan hjælpe.

Dette er hele scriptet:

<!-- #include file="dbforb.asp" -->
<%
' Get Product ID
productID = TRIM( Request( "pid" ) )


' Add Item to cart
IF productID <> "" THEN
  sqlString = "SELECT cart_id FROM cart " &_
    "WHERE cart_userID=" & userID & " " &_
    "AND cart_productID=" & productID
  SET RS = Conn.Execute( sqlString )

  IF RS.EOF THEN
  sqlString = "INSERT INTO cart ( " &_
    "cart_productname, " &_                    ' Virker ikke
    "cart_productvhsdvd, " &_                ' Virker ikke
    "cart_userID, " &_
    "cart_productID, " &_
    "cart_quantity " &_
    ") VALUES ( " &_
    "'" & productname & "', " &_
    "'" & productvhsdvd & "', " &_
    userID & ", " &_
    productID & ", 1 )"
  ELSE
  sqlString = "UPDATE cart SET " &_
    "cart_quantity=cart_quantity+1 " &_
    "WHERE cart_id=" & RS( "cart_id" )
  END IF
  RS.Close
  SET RS = Nothing
  Conn.Execute sqlString
END IF


' Update Shopping Cart Quantities
IF Request( "updateQ" ) <> "" THEN
SET RS = Server.CreateObject( "ADODB.Recordset" )
RS.ActiveConnection = Conn
RS.CursorType = adOpenDynamic
RS.LockType = adLockOptimistic
sqlString = "SELECT cart_id, cart_quantity FROM cart " &_
  "WHERE cart_userID=" & userID
RS.Open sqlString
WHILE NOT RS.EOF
newQ = TRIM( Request( "pq" & RS( "cart_id" ) ) )
IF newQ = "" OR newQ = "0" THEN
  RS.Delete
ELSE
  IF isNumeric( newQ ) THEN
    RS( "cart_quantity" ) = newQ
  END IF
END IF
RS.MoveNext
WEND
RS.Close
SET RS = Nothing
END IF
%>
<html>
<head><title>Indkøbskurv</title></head>
<body bgcolor="white">

<center>
<font face="Verdana" size=3 color="#000000">
<b><%=username%>'s indkøbskurv:</b>
</font>

<%
' Get the shopping cart
sqlString = "SELECT cart_id, product_name, " &_
  "product_price, cart_quantity, product_vhsdvd " &_
  "FROM cart, products " &_
  "WHERE cart_userID=" & userID & " " &_
  "AND cart_productID = product_id " &_
  "ORDER BY cart_id DESC"
SET RS = Conn.Execute( sqlString )

IF RS.EOF THEN
%>
<p><b>Du har ingen film i din indkøbskurv</b>
<p>
<form action="default.asp">
<input type="submit" value="Fortsætte">
</form>
<%
ELSE
orderTotal = 0
%>
<form method="post" action="viskurv.asp">
<input name="updateQ" type="hidden" value="1">
<input name="username" type="hidden" value="<%=username%>">
<input name="password" type="hidden" value="<%=password%>">
<table border=0 cellpadding=5 cellspacing=0 width="100%">
<tr bgcolor="#FF99CC">
  <th align="left">Film</th>
  <th align="left">VHS/DVD</th>
  <th align="left">Pris</th>
  <th>Antal</th>
</tr>
<%
WHILE NOT RS.EOF
orderTotal = orderTotal + ( RS( "product_price" ) * RS( "cart_quantity" ) )
orderTotalMoms = orderTotal - (orderTotal * 25)/100
%>
<tr>
  <td>
  <input type="text" name="product_name" value="<%=RS( "product_name" )%>">
  </td>
  <td>
  <input type="text" name="product_vhsdvd" value="<%=RS( "product_vhsdvd" )%>">
  </td>
  <td>
  <input type="text" name="product_price"value="kr.<%=RS( "product_price" )%>,-">
  </td>
  <td align="middle">
  <input name="pq<%=RS( "cart_id" )%>" type="text" size=4
  value="<%=RS( "cart_quantity" )%>">
  </td>
</tr>
<%
RS.MoveNext
WEND
%>
<tr bgcolor="#FF99CC">
  <td>&nbsp;</td>
  <td colspan=2 align=right>
  <b>Ordre Total:</b>
  </td>
  <td align="middle">
  kr.<%=( orderTotal )%>,-
  </td>
</tr>
<tr bgcolor="#FF99CC">
  <td>&nbsp;</td>
  <td colspan=2 align=right>
  <b>Eksl.moms:</b>
  </td>
  <td align="middle">
  kr.<%=( orderTotalMoms )%>,-
  </td>
</tr>
<tr>
  <td colspan=3 align="center">
  <table border=0>
  <tr>
    <td>
    <input type="submit" value="Opdater kurv">
    </td>
    </form>
    <form method="post" action="checkout.asp">
    <input name="username" type="hidden" value="<%=username%>">
    <input name="password" type="hidden" value="<%=password%>">
    <td>
    <input type="submit" value="Forsæt">
    </td>
    </form>
    <form action="default.asp">
    <td>
    <input type="submit" value="Købe flere film">
    </td>
    </form>
  </tr>
  </table>
  </td>
</tr>
</table>
<% END IF %>


</center>

</body>
</html>

På forhånd tak
Avatar billede kichian Nybegynder
12. august 2002 - 10:52 #1
Hvis dette er hele dit script, så mangler du at sætte:
productname og productvhsdvd med nogle værdier. Kan du se om der ligge nogle records i cart, hvor disse felter er tomme. Men hvor de øvrige felter har de rigtige værdier
Avatar billede neteffect Nybegynder
12. august 2002 - 10:53 #2
Hvordan ser din sqlString foINSERTen ud lige før du executer den?

...
  RS.Close
  SET RS = Nothing
response.write "debug - sqlString:" & sqlString
  Conn.Execute sqlString
END IF
...
Avatar billede bocker Nybegynder
12. august 2002 - 10:54 #3
Har du prøvet at udskrive dine INSERT INTO statements? Kunne være meget nyttigt at se, hvad de indeholder, hvis du mener fejlen er der... :)
Avatar billede mickill Nybegynder
12. august 2002 - 11:12 #4
Jeg har nu prøvet at udskrive min sqlString og får dette:

INSERT INTO cart ( cart_productname, cart_productvhsdvd, cart_userID, cart_productID, cart_quantity ) VALUES ( '', '', 35, 53, 1 )

Jeg kan godt se productname og productvhsdvd er tomme men jeg aner ikke hvorfor ??
Avatar billede neteffect Nybegynder
12. august 2002 - 11:18 #5
Du må jo først og fremmest ind og se i den inkluderede dbforb.asp om der sker noget dér med de to tomme variabler.
- Eller vedtag med dig selv, at scriptet er dumpet til optagelsesprøven og find et bedre i stedet!
Avatar billede mickill Nybegynder
12. august 2002 - 11:24 #6
dbforb.asp fejler ingenting og scriptet er heller ikke dumpet til optagelsesprøve det er jeg til gengæld og det er jo lige præcis derfor at jeg skriver herinde i håb om at der nogen som kan fortælle mig hvad det er som jeg har gjort galt !!!
Avatar billede neteffect Nybegynder
12. august 2002 - 11:26 #7
Jeg vil gerne benytte lejligheden til at videregive nogle erfaringer med at bruge scripts hentet fra nettet.

1) Der er mange udmærkede scripts derude

2) Hvis et script ikke har sat option explicit, så gør dét med det samme. Komer der tonsvis af fejl, så drop scriptet.

3) Afprøv scriptet. Virker det med det samme, er det et sjældent lykketræf!

4) Gå hele scriptet igennem og prøv at forstå hvad der foregår.

5) Overvej at bygge dit eget script, eventuelt med trinvis indkopiering af stumper fra det lånte script. Afprøv hvert trin, før du går videre med det næste.
Avatar billede mickill Nybegynder
12. august 2002 - 12:38 #8
Har løst problemet ved hjælp af en querystring:

<a href="viskurv.asp?pid=<%=rs("product_id")%>&name=<%=rs("product_name")%>&type=<%=rs("product_vhsdvd")%>">Køb</a>

og har så tilføjet:

productname = TRIM( Request( "name" ) )
productvhsdvd = TRIM( Request( "type" ) )

øverst på siden og nu virker det.....Ellers tak for hjælpen.
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