27. august 2003 - 10:39Der er
8 kommentarer og 1 løsning
Loop array
hejsa,
er lige stødt ind i et problem.
Har en database med 8 kolonner i en tabel
Kolonnerne hedder v1, v2, v3, v4 etc.
Nu vil jeg gerne lave noget output hvor der bliver lavet et db kald som så skal udskrive værdierne såfremt de ikke er tomme. Har lavet flg, men denne udskriver jo kun 1. værdi og ikke de efterfølgende såfremt de ikke er tomme. Der skal vel laves en form for count eller lignende:
Du kommer lige til at forklare hvad du mener med tomme værdier. Det du tester for i Do Until objRs.EOF er om dit recordsæt overhovedet indeholder nogen poster og ikke om værdierne i de enkelte felter er tomme. Vil du kun udskrive felternes værdier hvis de ikke er tomme eller hvad?
SQL = "SELECT * FROM produkter where vare like'"+vare+"'"
Set Objrs = Conn.Execute(SQL)
Do Until objRS.EOF
for i = 1 to 8 %> <tr> <td align="left" valign="top">felt v<%=i%> <%response.write ObjRs("v" & i)%> </td> </tr> <% Next objrs.MoveNext Loop Conn.Close %> Sådan her får du de 8 felter hver gang...
Så kan du lave et check for om det er tomt på denne måde: <% set conn = server.CreateObject("ADODB.Connection") conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=sti
SQL = "SELECT * FROM produkter where vare like'"+vare+"'"
Set Objrs = Conn.Execute(SQL)
Do Until objRS.EOF
for i = 1 to 8 if ObjRs.Fields("v" & i) <> Null then %> <tr> <td align="left" valign="top">felt v<%=i%> <%response.write ObjRs("v" & i)%> </td> </tr> <% end if Next objrs.MoveNext Loop Conn.Close %>
SQL = "SELECT * FROM produkter where vare like'"+vare+"'"
Set Objrs = Conn.Execute(SQL)
Do Until objRS.EOF
%>
response.write "<tr>" for i = 1 to 8 ret = rs("v" & i) if ret <> "" then response.write "<td align='left' valign='top'>" & ret & "</td>" else response.write "<td align='left' valign='top'>" & "-" & "</td>" end if next
SQL = "SELECT * FROM produkter where vare like'"+vare+"'"
Set Objrs = Conn.Execute(SQL)
Do Until objRS.EOF
for i = 1 to 8 if ObjRs.Fields("v" & i) <> "" then %> <tr> <td align="left" valign="top">felt v<%=i%> <%response.write ObjRs("v" & i)%> </td> </tr> <% end if Next objrs.MoveNext Loop Conn.Close %>
Så får du alle felterne hvor der er indskrevet data udskrevet... Forudsat at du har 8 felter (v1, v2, ... , v8) i din database
Og når du nu opbygger i en tabel bliver du nødt til at have noget i tabellen hvis felterne nu er tomme...
Sådan her skal den endelige se ud. <% set conn = server.CreateObject("ADODB.Connection") conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=sti
SQL = "SELECT * FROM produkter where vare like'"+vare+"'"
Set Objrs = Conn.Execute(SQL) Do Until objRS.EOF
for i = 1 to 8
response.write "<tr>" if ObjRs.Fields("v" & i) <> "" then %> <td align="left" valign="top">felt v<%=i%> <%=ObjRs("v" & i)%></td> <% else response.write "<td> </td>" end if %> </tr> <% end if Next objrs.MoveNext Loop Conn.Close %>
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.