Avatar billede mannik Nybegynder
19. juni 2003 - 18:57 Der er 20 kommentarer og
1 løsning

Nu er jeg langt ude

Med stor hjælp herfra fik jeg mit system med at skrive til database til at virke. MEN når jeg nu kun vil udskrive mit bestillingsnr ("id")hvis feltet ("best") er udfyldt hvordan gør jeg så ? Jeg har prøvet med :
% if ObjRS("best")<>""then %><%= ObjRS ("best")%><% end if %>
                <%Response.Write"<tr><td>" & objRS("id") &"</td>"
                %>

Men det virker selvfølgelig ikke! Og hvordan sletter jeg indtasterninger i "best" når bestilling bliver sendt?

På forhånd tak
Avatar billede rune_c Nybegynder
19. juni 2003 - 19:01 #1
<%

if ObjRS("best") <> "" then
  Response.Write(ObjRS("id"))
end if

Response.Write("<tr><td>" & objRS("id") &"</td>")

%>
Avatar billede rune_c Nybegynder
19. juni 2003 - 19:02 #2
tro lige jeg læse hvad du skrev eeen gang til ;-)
Avatar billede rune_c Nybegynder
19. juni 2003 - 19:03 #3
hvis id'et kun skal udskrives skal du bare bruge de 3 første linier jeg skrev
Avatar billede rune_c Nybegynder
19. juni 2003 - 19:06 #4
if [bestilling sendt] then
  conn.Execute("Update from [tabel] (best) values ('') where id = " & ObjRS("id"))
end if
Avatar billede mannik Nybegynder
19. juni 2003 - 19:21 #5
Måske skulle jeg lære at udtrykke mig lidt tydeligere 8o(
Jeg ville gerne udskrive id OG best hvis der er udfyldt noget i best! Undskyld forvirringen
Avatar billede rune_c Nybegynder
19. juni 2003 - 19:30 #6
hvis jeg forstår dig ret skal objRS("best") altid udskrives, men objRS("id") også skal udskrives hvis der er en værdi i objRS("best")

<%

if ObjRS("best") <> "" then
  Response.Write(ObjRS("id"))
end if

Response.Write("<tr><td>" & objRS("best") &"</td>")

%>
Avatar billede eagleeye Praktikant
19. juni 2003 - 19:38 #7
Man skal tjekke på om felter er Null, hvis det er tomt i databasen får man Null og ikke "" tilabge i recordsetet.

Så prøv:

if isNull(ObjRS("best")) = false then

  Response.Write objRS("id") & "<br>" & ObjRS("best")

end if
Avatar billede mannik Nybegynder
19. juni 2003 - 20:37 #8
I ingen af eksemplerne får jeg mit "id" med. Skal i bruge noget mere kode ? I så fald hvilken
Avatar billede eagleeye Praktikant
19. juni 2003 - 20:44 #9
Ok den skriver også kun ID ud hvis der er noget i "best". Hvis den altid skal skrive "id" ud så prøv.:


<% if isNull(ObjRS("best")) = false then %>
  <%= ObjRS ("best")%>
<% end if %>
<%Response.Write"<tr><td>" & objRS("id") &"</td>"
%>
Avatar billede mannik Nybegynder
19. juni 2003 - 20:56 #10
Jeg får nu et : Microsoft VBScript compilation error '800a0400'

Expected statement

/shoppingbasket.asp, line 38

<% if isNull(ObjRS("best")) = false then
^

Her er hele smøren så i kan se hvad jeg laver. Det var ellers rigtigt nok at jeg kun ville have "id" ud hvis der er noget i "best". Som det måske vil fremgå er det til en 'indkøbskurv'


<%
Dim objConndrejebase
Set objConndrejebase = Server.CreateObject ("ADODB.Connection")
objConndrejebase.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\manniken.dk\www\config\datasources\drejebase.mdb"
objConndrejebase.Open () 

Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "SELECT id, d_min,l,e, insert,price,drawing,image, best FROM dreje_indv",objConndrejebase
%>

<%   

strSQL = "Insert into dreje_indv (best) values('" & Request.Form("order") & " ' )"
objConndrejebase.Execute(strSQL)
%><%
Set objRS=objConndrejebase.Execute("SELECT id, d_min, l, e, insert, price, drawing, image, best FROM dreje_indv")
Do while Not objRS.EOF
%>
        <table width="122" border="1" cellspacing="2" cellpadding="0">
            <tr>
                <td>
                <%

<% if isNull(ObjRS("best")) = false then %>
  <%= ObjRS ("best")%>
<% end if %>
<%Response.Write"<tr><td>" & objRS("id") &"</td>"
%>
            </tr>
        </table>
       
        <p>
<%

objRS.Movenext
Loop

objRS.Close
Set objRS = Nothing

objConndrejebase.Close
Set objConndrejebase = Nothing
%></p></p>
    </body>

</html>
Avatar billede eagleeye Praktikant
19. juni 2003 - 21:00 #11
Prøv at fjerne <% foran selv if sætningen der er to af dem efter hinadnen. Så det bliver:

if isNull(ObjRS("best")) = false then %>
Avatar billede mannik Nybegynder
19. juni 2003 - 21:07 #12
Tak for din tålmodighed , prøv evt at se her ; http://www.manniken.dk/dreje.asp prøv venligst at "bestille" noget og så se hav den laver .

På forhånd tak
Avatar billede eagleeye Praktikant
19. juni 2003 - 21:12 #13
Det er fordi det felt man skriver har samme navn for alle vare, order:

<input type="text" name="order" size="5">

Så når man tyrkker bestil kommer de alle sammen med me de er tomme "" men da de har samme navn bliver alle felterne adskildt af ,
Avatar billede mannik Nybegynder
19. juni 2003 - 21:33 #14
Ok, hvordan burde jeg da have lavet det ? Som det ses er ASP nyt for mig! Det jeg drømmer om at lave er en bestillingsside(uden betalingsdel) hvor det man bestiller, og kun det, bliver skrevet ud på siden evt med antal i et tekstfelt så man kan rette i det .
Avatar billede eagleeye Praktikant
19. juni 2003 - 21:41 #15
Det kommer lidt an på hvad man ønsker.
Hvis du vil havde en lang streng med , i mellem så kan man netop udnyttet dog skal , , , så fjernes hvis der ikke er tal imellem.

Hvis man vil havde hver vare for sig selv kan man ligge ID på varen ind i et heidden felt og så giver ændre navet på order inputet til også at bestå af ID for varen. <input type="text" name="order<%=rs("id")%>" size="5">
Så skal den som hndter loope gennem alle de ID som er og tjekke på om der er indtastet noget i et felt.
Avatar billede mannik Nybegynder
20. juni 2003 - 07:02 #16
Tak for svaret, pointene må være dine. Men før jeg lukker ville jeg lige spørge; Har jeg forstået det rigtigt at jeg kan lave det sådan:
<input type="text" name=order<%=objRS("id")%>" size="5">
<input type="hidden" name="id">

Og så bruge dit If isNull...........

Jeg prøver naturligvis men jeg vile meget gerne høre din kommentar , tak
Avatar billede eagleeye Praktikant
20. juni 2003 - 09:22 #17
Ja det er sådan jeg mener dog skal du også lige hvade selv IDet ind i values på det hiddenfelt, sådan her:

<input type="hidden" name="id" value="<%=objRS("id")%>">



På den side som tjekker om varen er krydset af lavet du det sådan her:

IDList = Request.Form("id")    'Det giver nemlig en liste med alle vare
idArr = split(IDList,",")      'Laver et array med alle ID

'Tjek om order<%=id%> er udfyldt

for i = lbound(idArr) to ubound(idArr)
  antal = Request.Form("order" & Trim(idArr(i)))
  if antal <> "" then
    'Der er angivet et antal af denne vare
    vareID = idArr(i)
   
  'Så har du vareID og antal du kan gemme i DBen elle

  Response.write "Der er bestil varen : " & vareID & " og antalet er " & antal & "<br>"
  end if
next
Avatar billede mannik Nybegynder
20. juni 2003 - 09:44 #18
Det bliver bedre og bedre! Den skriver dog intet ud lige nu men det løser sig måske ?

Jeg har følgende lige nu:

Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "SELECT id, d_min,l,e, insert,price,drawing,image, best FROM dreje_indv",objConndrejebase
%>

<%   

strSQL = "Insert into dreje_indv (best) values('" & Request.Form("order") & " ' )"
objConndrejebase.Execute(strSQL)
%><%
Set objRS=objConndrejebase.Execute("SELECT id, d_min, l, e, insert, price, drawing, image, best FROM dreje_indv")
Do while Not objRS.EOF
%>
    <%   
            IDList = Request.Form("id")    'Det giver nemlig en liste med alle vare
idArr = split(IDList,",")      'Laver et array med alle ID

for i = lbound(idArr) to ubound(idArr)
  antal = Request.Form("order" & Trim(idArr(i)))
  if antal <> "" then
    'Der er angivet et antal af denne vare
    vareID = idArr(i)
'Så har du vareID og antal du kan gemme i DBen elle

  Response.write "Der er bestil varen : " & vareID & " og antalet er " & antal & "<br>"
  end if
next
%>
       
       
<%

objRS.Movenext
Loop

objRS.Close
Set objRS = Nothing

objConndrejebase.Close
Set objConndrejebase = Nothing
%>
    </body>

</html>
Avatar billede mannik Nybegynder
20. juni 2003 - 09:46 #19
Jeg glemte :

Hvilken funktion har 'next' efter end if ? Jeg har er par relaterede spørgsmål, kan jeg fyre dem af her med ekstra point eller er det bedre at starte et nyt spørgsmål ?
Avatar billede mannik Nybegynder
20. juni 2003 - 09:53 #20
Den skriver det nu godt nok, før jeg slutter, kan jeg stille de yderligere spørgsmål her eller skal jeg starte et nyt ?
Avatar billede mannik Nybegynder
20. juni 2003 - 12:16 #21
Jeg må hellere give dig points mens jeg husker det. Det eneste pro
blem jeg har lige nu er at den skriver ligeså mange linier som der er felter i databasen
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