Avatar billede peppino Nybegynder
15. april 2003 - 16:07 Der er 2 kommentarer og
1 løsning

Måske en Replace funktion

Hej.

Jeg har en database som indeholder noget ala det her

id      tekst      tekst1      tekst2
1        0012      1234        hej
2        0022      2345        heyhey
3        0233      3456        Heyhej(1234/2345)
4        0253      4567        Halløjsa(2345/3456)


Hvordan får jeg "Heyhej(1234/2345)" rettet til "Heyhej(0012/0022)" og  "Halløjsa(2345/3456)" rettet til "Halløjsa(0022/0233)"    ?????

Skriv hvis I ikke forstår det

/Peppino
Avatar billede mortvader Nybegynder
15. april 2003 - 16:10 #1
update tabel set tekst2='Heyhej(0012/0022)' where tekst2='Heyhej(1234/2345)'

osv
Avatar billede eagleeye Praktikant
15. april 2003 - 16:46 #2
Altså man skal læse feltet "tekst2" og hvis der er (xxxx/yyyy) så skal den slå xxxx op til "tekst1" og tage zzzz fra "tekst". Ligeledes skal yyyy slåes op i "tekst2" og finde cccc i "tekst". så skal de nye væride gemmen så der bliver (zzzz/cccc) ?
Det bliver nok umuligt i en SQL det bliver noget med loops og en del opslag i databasen.

Vil det altid være (4 tal/ 4 tal)?
Avatar billede eagleeye Praktikant
15. april 2003 - 17:10 #3
Eks på koden som jeg forstår dit sprøgsmål, du skal nok lige rette conntion til at passe til din database og rette tabel navnet fra db_tekst til det rigtige.:


<%
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.RecordSet")
Set tRs = Server.CreateObject("ADODB.RecordSet")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db7.mdb")

SQL = "SELECT * FROM db_tekst"
Set rs = Conn.Execute(SQL)

do while not rs.EOF
  opdaterDB = false
  tekst = rs("tekst3")

  if tekst <> "" then
    if Right(tekst,1) = ")" then
      'indeholder tal
      index = inStrRev(tekst,"(")
      to_tal = Mid(tekst,index+1,len(tekst)-index-1)
      talArr = Split(to_tal,"/")

      SQL = "SELECT tekst FROM db_tekst WHERE tekst2 = '" & talArr(0) & "'"
      Set tRs = Conn.Execute(SQL)
      if not trs.EOF then nyTal1 = tRs("tekst")

      SQL = "SELECT tekst FROM db_tekst WHERE tekst2 = '" & talArr(1) & "'"
      Set tRs = Conn.Execute(SQL)
      if not trs.EOF then nyTal2 = tRs("tekst")
     
      if nyTal1 <> "" and nyTal2 <> "" then
        tekst = Left(tekst,index) & nyTal1 & "/" & nyTal2 & ")"
        opdaterDB = true
      end if

      if (opdaterDB = true) then
        SQL = "UPDATE db_tekst SET tekst3 = '" & tekst & "' WHERE id = " & rs("id")
        Conn.Execute(SQL)
      end if
     
    end if
  end if

  rs.MoveNext
loop

Conn.Close
%>
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