Lasse Vestergaard skrev:
> ' SQL sletter record
> strSQL = "select * from personer order by Fornavn"
Din kommentar stemmer ikke med den efterfølgende sql. Det er ikke
en decideret fejl, men det kan forvirre når kommentaren angiver
noget andet end den kode den står ved.
[løkke i rediger.asp]
> <form action="opdater.asp" method="post">
> <input type="text" value="<% response.write rs("Fornavn")%>"
> name="Fornavn">
> <input type="submit" value="Opdater">
> </form>
Hvordan vil du få opdater.asp til at vide hvilken post der skal
opdateres? Opdater.asp får kun den information du sender med fra
formen - og det er her alene feltet fornavn og submitknappen med
den faste tekst opdater.
> strSQL = "Update personer set Fornavn = ('" &
> Request.Form("Fornavn") & "') where Fornavn = 'Fornavn'"
sql-sætningen her opdaterer alle poster hvor fornavnet er
"Fornavn". Du skal have fat i et kriterium der vælger den post du
rent faktisk vil opdatere.
> Hvis nogen kunne give mig et vink til hvad der går galt, så vil
> jeg være meget glad.
Der er to problemer. For det første mangler du en entydig
identifikator i formene på rediger.asp. Hvis du har et id-felt
(primærnøgle) i tabellen, vil det være oplagt at bruge det.
Læg værdien fra id-feltet ned i et skjult felt:
<input type="hidden" name="personID" value="<%= rs("personID") %>">
På den måde vil hver form på siden indeholde id-nummeret på den
post formen giver adgang til at rette i.
I opdater.asp skal du så hente id-feltet (Request.Form("personID"))
- og det skal så lægges ind i where-delen:
Dim fornavn, personID
fornavn = Request.Form("fornavn")
personID = Request.Form("personID")
updateSQL = "UPDATE personer SET fornavn = '" & fornavn & _
"' WHERE personID = " & personID
Det kan være en ganske god ide at lave datavalidering på de form-
værdier du skal sætte ind i sql-sætningen. Se lidt om hvorfor og
hvordan her: <
http://asp-faq.dk/article/?id=95>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html