23. januar 2004 - 09:16Der er
10 kommentarer og 1 løsning
Udtræk fra datbase fordeles over flere tabeller på samme side
Hej!
Jeg har en database med et felt, der hedder Competence. I Competence er der seks områder (eks. kaldet 1, 2, 3, 4, 5 og 6).
Når jeg laver mit udtræk fra databasen får jeg listet samtlige poster, men det bliver uoverskueligt,trods en sortering efter Posternumber.
Derfor vil jeg gerne have udtrækket fra databasen fordelt over seks tabeller - men stadig på samme side. Eks. alle data fra Competence-området 1 skal i en tabel for sig, alle data fra Competence-området 2 skal ind en tabel for sig osv.
Nedenfor ses min nuværende kode, som formentligt skal justeres på flere punkter.
Jeg har brug for lidt hjælp her...
--- start på kode ---
<% Option Explicit
Dim objConn Dim objRs Dim intPosternumber Dim strSQL, strCompetence, strTitle, strSubtitle, strLanguage, strPDF_URL, strFilesize, strBGColor, strPosters, strNew Dim blnBGColor
strSQL = "SELECT Posternumber, Competence, Title, Subtitle, Language, PDF_URL, Filesize, New FROM Data ORDER BY Posternumber ASC;" Set objRs = objConn.Execute(strSQL) If Not (objRs.BOF AND objRs.EOF) Then Do While Not objRs.EOF intPosternumber = objRs("Posternumber") strCompetence = objRs("Competence") strTitle = objRs("Title") strSubtitle = objRs("Subtitle") strLanguage = objRs("Language") strPDF_URL = objRs("PDF_URL") strFilesize = objRs("Filesize")
If blnBGColor = True Then strBGColor = "#FFFFFF" blnBGColor = False Else strBGColor = "#eeeeee" blnBGColor = True End If
If objRs("New") = true Then strNew = " <img src=""images/new.gif"" alt=""New"" /> " Else strNew = "" End If
hmm ... kan du ikke udføre dette i en loop ? noget ála:
for i = 1 to 6 strSQL = "SELECT Posternumber, Competence, Title, Subtitle, Language, PDF_URL, Filesize, New FROM Data WHERE Competence = " & i & " ORDER BY Posternumber ASC;" Set objRs = objConn.Execute(strSQL) If Not (objRs.BOF AND objRs.EOF) Then Do While Not objRs.EOF ... Loop End if next
Jeg kan ikke forstå at du ønsker at opdele det i flere tabeller...?
Er data for de enkelte typer Comptetence rimeligvis ens? Det vil jeg næsten tro de er, siden du indtil nu har haft dem alle liggende i en og samme tabel.
Burde du så ikke bare begrænse din select til kun at hive en enkelt af de seks kompetence typer ud ad gangen. Så skal du bare gøre det seks gange, hvor din WHERE sættes til 1, 2, 3, 4, 5 eller 6
Nu jeg sidder og skriver dette, får jeg nærlæst nute's indlæg, og jeg tror det er nogenlunde det samme han forsøger at sige. :-)
nute >> Jeg kan ikke helt forstå dit eksempel, hvor du først har en If Not (objRs.BOF AND objRs.EOF) Then og inde i din if har du så en Do While Not objRs.EOF
Det burde vel være tilstrækkeligt med "Do While" løkken, med mindre din If del har en else del du gerne vil ind i, såfremt resultsettet er tomt...?
sbm >> helt korrekt ... men jeg har (*rødme* *rødme*) kun kopieret den kode som ravnkilde har postet uden at reviewe den :-/ Min pointe var bare at splitte op SQL'en i 6 queries ... hvordan den ellers bliver implementeret er p.t. ligegyldig da det ikke var helt tydelig hvad spm'et egentlig gik ud på ;-)
Hvis der skal være seks tabeller på den samme side, bør vi nok have både en IF og en WHILE
If Not (objRs.BOF AND objRs.EOF) Then response.write "<table>" Do While Not objRs.EOF response.write "<tr><td>" & objRs("Posternumber") & "</td></tr>" Loop response.write "</table> End if
Så skal der selvfølgelig bare lidt flere felter ind i end kun Posternumber :-)
sbm: Helt ærligt, så er jeg kommet lidt (læs: meget langt) væk fra opgaven. Jeg opretter spørgsmålet igen, så kan du SVARE på det og få de 100 pts. Det er bestemt ikke for at jeg selv skal have pointene. Hvorfor skulle jeg egentligt det, når jeg selv har oprettet spørgsmålet. Jeg har blot afsluttet spørgsmålet, for ikke at have for mange åbne spørgsmål.
Næ. Generelt set er jeg selv ret ligeglad med point, men det er der mange andre der ikke er, og jeg synes bare ikke det var ok at lukke uden nogen angivelse af hvorfor hvordan og hvorledes. Folk havde jo brugt tid på at være behjælpelige, og hvis de svar kunne bruges ville det ikke være fair sådan at smække døren i.
Synes godt om
Ny brugerNybegynder
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.