Avatar billede cort Nybegynder
19. januar 2001 - 09:59 Der er 2 kommentarer

SQL insert i database

Hej alle,

Jeg har et lille problem som en af jer helt sikkert kender løsningen på.

JEg skal indsætte en række tal i en access DB.

Jeg har en side der looper igennem et request som det her:

<%
  For iCityCount=1 to Request(\"checkpoint\").COUNT    \'Løkke der tæller hvor bokse der er afkrydset

  strTEXT = Request(\"checkpoint\")(iCityCount)                    \'Hele tekststrengen sendt fra tilmelding.asp
  intFindKomma = InStr(strTEXT,\";\")                                      \'Find Første komma
  strNr = mid(strTEXT, 1, intFindKomma-1)                        \'Rytterens nummer
  strTemp = mid(strTEXT, intFindKomma+1, LEN(strTEXT))          \'Midlertidig variabel
  intNavn = Instr(strTemp,\";\")                                                \'Variabel med rytternavn,point
  strNavn = mid(strTemp, 1, intNavn-1)                                    \'Rytterens navn
  strPoint = mid(strTemp, intNavn+1, len(strTemp))              \'Rytterens point
  intPointsIalt = intPointsIalt + CInt(strPoint)
  intNumberOfLoops = intNumberOfLoops + 1
 
  \'Udskriv resultat til siden
  Response.Write \"<tr>\"
  Response.Write \"<td>\" & strNr & \"</td>\"
  Response.Write \"<td>\" & strNavn & \"</td>\"
  Response.Write \"<td>\" & strPoint & \"</td>\"
  Response.Write \"</tr>\"
Next
  %>


På en anden side skal jeg indsætte alle [strNr] der kommer fra ovenstående løkke.

SQL = \"INSERT INTO tblTilmeldteHold (navn, email, holdnavn, pointialt, rytter1, rytter2, rytter3, rytter4, rytter5, rytter6, rytter7, rytter8, rytter9, rytter10, rytter11, rytter12, rytter13, rytter14, rytter15) VALUES (\"

Her skal strNr indsættes

SQL = SQL & \")\"
Connect.Execute(SQL)


Mit problem er at antallet af ryttere (rytter1, rytter2, rytter3, rytter4......) kan variere fra 12 - 15 alt afhængig af hvor mange der er valgt.

Hvordan gør man det?  Kan det tænkes at databasen skal bygges op anderledes eller ??

Er der nogen der kan hjælpe???
Avatar billede kasseper Nybegynder
19. januar 2001 - 10:08 #1
Du kan da bare have et tjeck på om hvor mange ryttere der er og hvis der ikke er 15 men måske 13 så sættes rytter14 og rytter15 til \"\" altså en tom streng.....
Alternativt kan du lave basen om så den indeholder en tabel der ser sådan her ud :

id    tilknytning    rytternavn    (rytternr)
1      spiller1        Bjarne Riis    1
2      spiller2        Bjarne Riis    1
1      spiller1        Rolf sørensen  2
1      spiller1        Ole Ritter    3

Bare som et eksempel, så opstår der ikke nogen problemer med tomme felter og den slags...
Avatar billede cdyring Nybegynder
19. januar 2001 - 14:54 #2
du skal lave en tabel, som indeholder

ID,Navn,Email,Holdnavn,Pointialt

og en anden, som indeholder

IDFkey,Rytter

Hvor ID er en autonummering integer, og IDFKey er fremmednøgle til ID. (samme værdi som id)

Så skal du først oprette Løbet eller whatever du kalder det, og denæst hente dets værdi ud af databasen igen.. Så opretter du ryttere en ad gangen.

Dernæst bruger du en join til at hente dem ud igen.

SELECT * FROM Loeb,Ryttere WHERE ID=IDFKey


... sådan meget groft sagt!

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