Avatar billede inkognito1 Nybegynder
25. juni 2001 - 01:09 Der er 10 kommentarer og
1 løsning

Smide kode over i Array !!!!

Hej folkens .. jeg har ikke rodet med Array overhovedet så derfor ved jeg intet om det.

Det jeg skal kunne er at editere en tekst til nogle billeder, det har jeg fået advide, skal laves i et Array ... Håber en har tid til at hjælpe med at rette min kode til så det kan bruges ..

koden ser sådan ud ..
strSQL = \"SELECT * FROM billeder where (uge=\"1\")\"
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\\home\\domain\\db\\users.mdb\"
Set rs = myConn.Execute(strSQL)
%>   
<% If not (rs.BOF Or rs.EOF) Then %>
<% do while not rs.eof %>
<INPUT TYPE=\"hidden\" NAME=\"ID\" VALUE=\"<%=rs(\"id\")%>\">
<img border=\"0\" src=\"<%=rs(\"billedeurl\")%>\"><br>
<textarea class=\"text\" rows=\"8\" name=\"beskrivelse\" cols=\"30\"><%=rs(\"beskrivelse\")%></textarea>
<%
rs.movenext
loop

myconn.close
set myconn = nothing
Set rs = Nothing
end if %>
Avatar billede elisabeth Nybegynder
25. juni 2001 - 10:01 #1
Hvorfor vil du have det i et array når du har en database?
mvh Elisabeth
Avatar billede sbm Nybegynder
25. juni 2001 - 10:02 #2
Hmmm... Jeg er ikke sikker på hvad det er du vil...?

Du vil lave en html-side hvor du kan redigere indholdet fra en tabel? Vil du kunne redigere alle posterne i et hug, eller skal du \"bare\" redigere dem en ad gangen? Eller vil du helt alternativt bare vise en oversigt over billederne, og når du så trykker på navnet, kommer du til den side hvor du kan redigere oplysningerne for det enkelte billede. Jeg tror jeg ville vælge den sidstnævnte.

Du mangler for det første en <form> tag, hvor du sætter action til den asp-side der skal udføre selve opdateringen.

Dertil kan jeg ikke forstå hvorfor du skal bruge et array til dette?

Smid en lidt bedre beskrivelse af hvad det er du ønsker. Så bliver jeg også bedre i stand til at hjælpe.
Avatar billede inkognito1 Nybegynder
25. juni 2001 - 11:41 #3
Jeg vil som sbm skriver redigere alle billedernes tekst i et hug ... Det er bare forskelligt antal af billeder hver uge ..

Jeg ved heller ikke om jeg skal bruge et Array det var blot en forslag jeg fik..

det jeg vil væl fra som jeg ahr nu er at jeg opdatere billederne hver for sig .. de skal som sagt kunne opdateres ved et enkelt klik

Håber i kan hjælpe
Avatar billede sbm Nybegynder
25. juni 2001 - 12:21 #4
strSQL = \"SELECT * FROM billeder where (uge=\"1\")\"
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\\home\\domain\\db\\users.mdb\"
Set rs = myConn.Execute(strSQL)

response.write \"<form action=opdaterbilleder.asp method=post>\"

If (rs.BOF Or rs.EOF) Then
  response.write \"Der er ingen billeder i databasen.\"
else
  do while not rs.eof
%>
<INPUT TYPE=\"hidden\" NAME=\"ID<%=rs(\"id\")%>\" VALUE=\"<%=rs(\"id\")%>\">
<img border=\"0\" src=\"<%=rs(\"billedeurl\")%>\"><br>
<textarea class=\"text\" rows=\"8\" name=\"beskrivelse<%=rs(\"id\")%>\" cols=\"30\"><%=rs(\"beskrivelse\")%></textarea><hr>
<%
rs.movenext
loop

response.write \"<input type=submit name=submit value=submit></form>\"

myconn.close
set myconn = nothing
Set rs = Nothing
end if %>

Dette skulle meget gerne producere en side, hvor du kan redigere i alle billederne. Den kalder så siden opdaterbilleder.asp som kører igennem de enkelte indlæg, og opdaterer databasen:

opdaterbilleder.asp (Jeg antager at din tabel med billederne har kolonnerne ID og BESKRIVELSE:
------------------------------------

...Åbn din DB-connection....

for each variabel in request.form
  if substring(request.form(variabel),1,2) = \"ID\" then
    BilledID = substring(request.form(variabel),3)
    BilledBeskrivelse = request.form(\"beskrivelse\"&BilledID)
    \' Nu har du ID og beskrivelsen for et af billederne.
    \' Kør så din sædvanlige database-opdaterings rutine her med disse variabler indsat.
  end if
next

...Luk din db-connection....

Det skulle vist være det?
Avatar billede inkognito1 Nybegynder
26. juni 2001 - 01:25 #5
<%
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open = \"\"& conn2 &\"\"
Set rs = Server.CreateObject(\"ADODB.RecordSet\")

for each variabel in request.form
if substring(request.form(variabel),1,2) = \"ID\" then
BilledID = substring(request.form(variabel),3)
BilledBeskrivelse = request.form(\"beskrivelse\"&BilledID)

strSQL = \"SELECT * FROM billeder where (Id = \" & billedID & \")\"
Set userSet = myConn.Execute(strSQL)
rs.Open strSQL, myConn, 1, 3
if Not (rs.BOF Or rs.EOF) Then
rs(\"beskrivelse\") = BilledBeskrivelse
rs.Update

end if
next

rs.Close
Set rs = Nothing
myConn.Close
Set myConn = Nothing
Response.Redirect \"admin1.asp?mode=ugeselect&u=\"& Request.form(\"uge\") &\" \"
%>
Avatar billede inkognito1 Nybegynder
26. juni 2001 - 01:26 #6
Sådan ser min opdaterbilleder.asp ud ..

men der kommer en

HTTP 500 - Intern serverfejl
Avatar billede sbm Nybegynder
26. juni 2001 - 08:27 #7
Send mig dine to .asp sider som de ser ud nu. Jeg kan køre dem på en server, hvor jeg får en mere detaljeret fejlbeskrivelse. Så vil jeg nok kunne rette det og sende det retur til dig. Jeg skal nok også bruge din .mdb fil, så jeg er sikker på det ikke er der fejlen ligger. Du kan jo bare lave en kopi og tømme den for data, hvis der er noget jeg ikke må se. Send det hele til stony@it.dk , og så kigger jeg på det.
Avatar billede sbm Nybegynder
26. juni 2001 - 08:32 #8
Jeg har lige spottet en fejl. Du har to IF sætninger, men lukker kun den ene af med END IF

Du skal tilføje en END IF lige før den du allerede har stående.
Avatar billede sbm Nybegynder
26. juni 2001 - 08:35 #9
Det vil i øvrigt være en god idé at lave indryk på samme måde som jeg lavede i mit eksempel længere oppe. Det gør det lettere at spotte den slags fejl. Hvis du har en IF og en END IF, så skal alt der står mellem disse to linier rykkes lidt ind.

if not rs.eof then
  response.write \".....\"
  response.write \"sldkfjsldkfj\"
  response.write \"slkdfjslkdjf\"
  rs.movenext
end if

Det samme gør sig gældende med FOR og WHILE løkker, så du også kan sikre dig at du har fået dine NEXT og LOOP med.
Avatar billede inkognito1 Nybegynder
27. juni 2001 - 12:23 #10
Løsningen:

admin1.asp

<%
link = \"25\"
%>
<p><input type=\"submit\" style=\"width:250;\" class=\"text\" value=\"Her kan du opdatere siden <%= username %>\"</a><p>
<%
strSQL = \"SELECT * FROM billeder where (uge=\'\"& link &\"\') order by id asc\"
Set myConn = Server.CreateObject(\"ADODB.Connection\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"upload.mdb\")
myConn.Open = strDSN

Set rs = myConn.Execute(strSQL)
response.write \"<form action=opdaterbilleder.asp method=post>\"
If rs.EOF Then
  response.write \"Der er ingen billeder i databasen.\"
else
  do while not rs.eof
%>
<%idnr = rs(\"id\")
%>
<INPUT TYPE=\"hidden\" NAME=\"ID<%=rs(\"id\")%>\" VALUE=\"ID<%=rs(\"id\")%>\">
<Font face=\"verdana\"><a href=\"admin1.asp?mode=sletbilleder1&id=<%=idnr%>&uge=<%=link%>\">Slet</a>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"467\" bgcolor=\"#666666\" height=\"223\" background=\"cd%20logo.gif\">
<tr>
<td width=\"291\" height=\"208\">
<p align=\"center\"><br><img border=\"0\" src=\"http://www.domian.dk/user/<%=rs(\"billedeurl\")%>\"></p>
</td>
<td width=\"3\" height=\"208\"></td>
<td width=\"152\" height=\"208\">
<textarea class=\"text\" rows=\"8\" name=\"beskrivelse<%=rs(\"id\")%>\" cols=\"30\"><%=rs(\"beskrivelse\")%></textarea>
</td>
</tr>
</table>
<p>
<%
rs.movenext
loop
%>
<INPUT TYPE=\"hidden\" NAME=\"Uge\" VALUE=\"<%=link%>\">
<input type=submit name=submit value=  Opdater  ></form>
<%

myconn.close
set myconn = nothing
Set rs = Nothing
end if %>


opdaterbilleder.asp

<%
set myConn = Server.CreateObject(\"ADODB.Connection\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"upload.mdb\")
myConn.open strDSN

set conn = server.createobject(\"ADODB.connection\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"upload.mdb\")
conn.open strDSN

for each variabel in request.form
  tmpVar = left(request.form(variabel),2)
  if tmpVar = \"ID\" then
  BilledID = mid(request.form(variabel),3,10)
  BilledBeskrivelse = request.form(\"beskrivelse\"&BilledID)

  strSQL = \"UPDATE BILLEDER SET BESKRIVELSE = \'\" & request(\"Beskrivelse\" & BilledID) & \"\' WHERE ID = \" & BilledID
  Conn.Execute(strSQL)
  end if
next

conn.Close

Set rs = Nothing
myConn.Close
Set myConn = Nothing
Response.Redirect \"admin1.asp?mode=ugeselect&u=\"& Request.form(\"uge\") &\" \"
%>
Avatar billede inkognito1 Nybegynder
27. juni 2001 - 12:23 #11
Mange 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