30. juli 2002 - 15:13Der er
24 kommentarer og 1 løsning
søgemaskine /ret data
Hejsa
Jeg har en access db hvor jeg har en masse oplysninger (4 felter i en tabel) jeg har lavet en oprettelse form til opretning af ny data i db´en og det kører fint.
Nu vil jeg gerne have at brugeren kan søge i db´en (kun i 2 felter fra tabellen) og når de får vist info skal de have mulighed for at rette det der er indtastede samt tilføje mere info.
jeg er ret ny indenfor asp programmering så jeg vil gerne have det "skåret ud i pap :) "
søge delen er intet problem... problemet ligger i at jeg gerne vil have søgningen til og vise hva den fandt og så skal man klike på den record man vil have vist. herefter skal den vise alle oplysninger fra alle felterne og der skal være mulighed for at rette og tilføje nyt data
Du skal lave det som to sider, evt med (i)frames. I den ene del, laver du et indtastningsformular ala: <form name="soeg" action="resultater.asp" method="get"> <input type="text" name="streng"> <input type="submit" value="find det!"> </form>
Så laver du en resultatside der i dette tilfælde skulle hedde resultater.asp, med følgende indhold: <% forbindelse til din database sql = "SELECT felt1, felt2 FROM tabelnavn WHERE felt1 = '" & Request.Querystring("streng") & " OR felt2 = '" & Request.Querystring("streng") & ";" Do while not rs.eof response.write rs(0) & " " & rs(1) & "<br>" loop
For at kunne gå ind og rette i de enkelte felter skal du have et unikt id med, og bruge det til at linke til en rette side. Men prøv lige at få denne del til at virke først, så kan vi tage fat på det sidste bagefter.
Jamen så skal du jo så bare skrive resultatet ud. Der skal du, som sagt, have id'et med. Altså: <% Do while not rs.eof response.write "<a href='retteside.asp?id=" & rs("id") & "'>rs("felt1") & " " & rs("felt2") & "</a>" loop
Din retteside.asp skal så indeholde noget ala: <form name="ret" action="retteside2.asp" method="post"> <input type="text" value="<%=rs(0)%>"> <input type="text" value="<%=rs(1)%>"> <input type="text" value="<%=rs(2)%>"> <input type="text" value="<%=rs(3)%>"> <input type="submit" value="ok"> </form>
ras2000 >> det der er idet er at man skulle kunne til føje mere info til info feltet eks 2/2 2002 er der sket blab bla bla (så jeg ved ikke om jeg har bygget db´en rigtig op ???
Nå, jamen det er da nemt nok. SQL = "SELECT * FROM tabelnavn WHERE id = " & request.form("id") & ";" ... rs(1) = request.form("navn på feltet") osv rs.update rs.close
Hvis du skriver dine resultater således: <% Do while not rs.eof response.write "<a href='retteside.asp?id=" & rs("id") & "'>rs("felt1") & " " & rs("felt2") & "</a>" loop Så burde de stå der som links til siden retteside.asp?id= og så id'et. Så skal du lave en retteformular, sådan som du sagde du havde lavet den.
Det vil nok se pænere ud sådan her: Do while not rs.eof response.write "<a href='retteside.asp?id=" & rs("id") & "'>rs("felt1") & " " & rs("felt2") & "</a><br>"
Jeg vil helst ikke rode med din database, det tager en farlig tid. Men hvis du har et unikt id til alle dine poster, så er der ikke meget der kan gå galt.
jeg har et felt til info,, hvor man skal kunne tilføje nye ting... hvordan vil du evt. foreslå opbygningen af db´en hvis der skal tilføjes løbende info og man skal kunne følge historikken
Jeg ville samle det i en ny tabel, med en henvisning til id'et i den første tabel. Altså en ny tabel med tre eller fire felter, et unikt id for denne tabel, "id", en henvisning til hvilken post det hører under i den anden tabel, "andentabelID", et felt med tilføjelsen, og evt en dato. På den måde vil du aldrig løbe tør for plads. Din sql skulle så hedde: select * from andentabel INNER JOIN nytabel on id.andentabel = andentabelID.nytabel
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.