Avatar billede tzag_dk Nybegynder
19. februar 2004 - 12:19 Der er 12 kommentarer og
2 løsninger

Kan man det her?

Hej

Jeg har en MySQL tabel der ser sådan ud:

id  kat  overskrift  suboverskrift  tekstt
-----------------------------------------------
1    13    Overskrift    Nr1,Nr2        tekstt1,tesktt2


Er det muligt at trække det ud fra db´en på denne måde?

Overskrift

Nr1
tesktt1

Nr2
tekstt2


Måske kan det gøres med en loop, men er ikke helt sikker på at det kan lade sig gøre.
Kan I forstå hvad jeg mener?

På forhånd tak!

// Rene
Avatar billede overchord Nybegynder
19. februar 2004 - 12:30 #1
jeg hvad du ved at felterne er kommaspeareret kan du bruger split(string, ",") til et array. Det eneste problem vil vaere hvis antallet af suboverskrifter of tekster ikke er det samme

Var_Subs = split(rs("suboverskrifter"), ",")
Var_tekster = split(rs("tekstt"), ",")

for i = 0 to UBound(Var_Subs)
  response.write(var_subs(i) & "<BR>")
  response.write(var_tekster & "<BR>")
next i
Avatar billede tzag_dk Nybegynder
19. februar 2004 - 12:37 #2
Det er ikke altid det samme...
Men hvis man skulle sætte det ind i det her, hvordan det?

<%
SQLtekstt = "select * from tekstt "
if Request.QueryString("subb") <> "" then
  SQLtekstt = SQLtekstt & " where kat = '" & Request.QueryString("subb") & "'"
elseif Request.QueryString("sub") <> "" then
  SQLtekstt = SQLtekstt & " where kat = '" & Request.QueryString("sub") & "'"
elseif Request.QueryString("menu") <> "" then
  SQLtekstt = SQLtekstt & " where kat = '" & Request.QueryString("menu") & "'"
end if
set recordtekstt = conn.execute(SQLtekstt)
%>
<table width="77%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr align="left" valign="top">
          <td width="68%" class="stor14"><%Response.Write(recordtekstt("overskrift"))%></td>
          <td width="32%" class="stor14">&nbsp;          </td>
        </tr>
        <tr align="left" valign="top">
          <td colspan="2" background="/images/dot_horizontal.gif"><img src="/images/dot_horizontal.gif" width="4" height="1"></td>
        </tr>
      </table>
<br>
<table width="77%"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><span class="stor14"><%Response.Write(recordtekstt("suboverskrift"))%></span></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><span class="smalltxt">
      <% Response.Write(Replace(recordtekstt("tekstt"),vbCrLf,"<br>")) %>
    </span></td>
  </tr>
</table>

// Rene
Avatar billede tzag_dk Nybegynder
19. februar 2004 - 12:53 #3
overchord >> Dit forslag virker ikke helt. Gar du lyst til at hjælpe noget mere?

// Rene
Avatar billede fennec Nybegynder
19. februar 2004 - 13:23 #4
id  kat  overskrift    suboverskrift      tekstt
-----------------------------------------------
1    13    Overskrift    Nr1,Nr2,Nr3        tekstt1,tesktt2
2    13    Overskrift    Nr1,Nr2,Nr3        tekstt1,tesktt3

Hvis dette kan lade sig gøre bliver det meget svært, om ikke umuligt.
Kan det virkelig det????
Avatar billede tzag_dk Nybegynder
19. februar 2004 - 13:29 #5
Det håber jeg at man kan, det er jo bare komma seperet.
Men lige hvordan man gør ved jeg ikke :-)

// Rene
Avatar billede overchord Nybegynder
19. februar 2004 - 13:38 #6
Det bliver umuligt at goere!. Du har jo ingen tilhoerstforhold. I suboverskriften har du tre tekster i raekkefoelge og i teksten har du to, men uden nogen angivelse af om tekst nr 2 i raekke tilhoerer suboverskrift 2 eller 3.
Avatar billede overchord Nybegynder
19. februar 2004 - 13:39 #7
Du kan goere det hvis - og kun hvis - du indsaetter kommer saa reaekkefeolgen passer> feks:
id  kat  overskrift    suboverskrift      tekstt
-----------------------------------------------
1    13    Overskrift    Nr1,Nr2,Nr3        tekstt1,tesktt2,
2    13    Overskrift    Nr1,Nr2,Nr3        tekstt1, ,tesktt3
Avatar billede fennec Nybegynder
19. februar 2004 - 13:45 #8
som overchord skriver det, kan det lade sig gøre. Men jeg ville lave en tabel til. Noget i denne retning.

nyhed: id, kat, overskrift
subover: id, nyhedID, subover, tekst
Avatar billede tzag_dk Nybegynder
19. februar 2004 - 13:57 #9
fennec >> er det ikke noget du kan uddybe lidt mere?

overchord >>
id  kat  overskrift    suboverskrift      tekstt
-----------------------------------------------
1    13    Overskrift    Nr1#Nr2            tekstt1#tesktt2
2    32    Overskrift    Nr1#Nr2#Nr3        tekstt1#tekstt2#tesktt3
3    43    Overskrift    Nr1                tekstt1

Sådan her kunne det jo komme til at se ud.
Jeg tænkte på om det ikke kunne lade sig gøre hvis den har lavet ét loop, så skal den finde den nr 2 af #, og efter loop nr to skal den finde den finde nr 3 af #, osv. Og så når den ikke kan finde flere, så stopper den.
Kunne I forstå det? :-)

// Rene
Avatar billede fennec Nybegynder
19. februar 2004 - 14:12 #10
id  kat  overskrift 
-----------------------------------------------
1    13    Overskrift
2    13    Headline

id  nyhedID  suboverskrift  tekstt
-----------------------------------------------
1      1      Nr1            tekstt1
2      1      Nr2            tesktt2
3      2      Første        FørsteText

Sådan ville jeg gøre det. Så er der ikke "virtuelle" tabeller i databasen.

Samtidig render du ikke i problemer hvis brugeren indtaster komma, eller hvilken split værdi du nu bruger. Ellers skal du som minimum bruge en mere avanceret split værdi, som består af flere tegn. F.eks #%/
Avatar billede tzag_dk Nybegynder
19. februar 2004 - 14:25 #11
fennec >> Det er også en løsning! Men jeg vil lige se om man ikke godt kan lave det på den anden måde med en split værdi.
Men hvis det ikke kan så må det jo være løsningen :-)

// Rene
Avatar billede overchord Nybegynder
19. februar 2004 - 14:42 #12
fennecs loesning med en ekstra table er helt klart at foretraekke. Dette er eng meget mere struktureret fremgang som vil vaere nemmere at finde rundt i. Jeg tror det vil vaere en god ide at faa det omstruktureret....
Avatar billede tzag_dk Nybegynder
19. februar 2004 - 15:20 #13
Hej igen... Jeg lavede det ud fra fennec´s løsning...
Så læg et svar :-)
Mange tak for hjælpen!

// Rene
Avatar billede fennec Nybegynder
19. februar 2004 - 15:28 #14
takker...
men overchord har også fortjent nogle af point'ene.
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