06. september 2001 - 17:18Der er
20 kommentarer og 2 løsninger
ultradev - hvordan opretter man en SQL sætning i en list/menu
Jeg er et database field ved navn \'teknologi\' som kan indeholde flere instanser er flash og andre forskellige navne. Hvordan lister jeg dem alle i en list/menu uden at få flash med flere gange? samtidigt vil jeg gerne liste alle records hvor flash indgår neden under!
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
med lidt fri fantasi og ligik burde man nok kunne se at der skulle stå \'Jeg HAR et database field ved navn \'teknologi\' som kan indeholde flere instanser AF NAVNET flash og andre forskellige navne\' :-)
Den sidste med at liste alle records hvor Flash indgår i :
Select * From DIT_TABEL Where DIT_FIELD_MED_FLASH Like \'%Flash%\'
Den med at liste et ord kun en gang, det ved jeg ikke lige. Men jeg ved du ikke kan gøre det i UD, skal håndkodes.
Tak for redningen \'bojohansen\' . Jeg skriver af og til uden at se på skærmen og dette kan give anledning til at der dropper nogle ord ud. Beklager, jer andre.
okey, cool og tak for dette - Jeg hæver points siden i nu er to om at dele.
I form første linie menu siger den!
ADODB.Fields error \'800a0cc1\'Item cannot be found in the collection corresponding to the requested name or ordinal. på tværs af skærmen. Her er min kode: (jeg er en amatør på dette felt!)
<%@LANGUAGE=\"VBSCRIPT\"%> <!--#include file=\"Connections/data.asp\" --> <% set rs_list = Server.CreateObject(\"ADODB.Recordset\") rs_list.ActiveConnection = MM_data_STRING rs_list.Source = \"SELECT DISTINCT teknologi FROM tbl_web\"
rs_list.CursorType = 0 rs_list.CursorLocation = 2 rs_list.LockType = 3 rs_list.Open() rs_list_numRows = 0 %> <% Dim rs_indhold__MMColParam rs_indhold__MMColParam = \"1\" if (Request.QueryString(\"id\") <> \"\") then rs_indhold__MMColParam = Request.QueryString(\"id\") %> <% set rs_indhold = Server.CreateObject(\"ADODB.Recordset\") rs_indhold.ActiveConnection = MM_data_STRING rs_indhold.Source = \"SELECT * FROM tbl_web WHERE id = \" + Replace(rs_indhold__MMColParam, \"\'\", \"\'\'\") + \"\" rs_indhold.CursorType = 0 rs_indhold.CursorLocation = 2 rs_indhold.LockType = 3 rs_indhold.Open() rs_indhold_numRows = 0 %> <% Dim Repeat1__numRows Repeat1__numRows = -1 Dim Repeat1__index Repeat1__index = 0 rs_indhold_numRows = rs_indhold_numRows + Repeat1__numRows %> <% \' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters
\' create the list of parameters which should not be maintained MM_removeList = \"&index=\" If (MM_paramName <> \"\") Then MM_removeList = MM_removeList & \"&\" & MM_paramName & \"=\" MM_keepURL=\"\":MM_keepForm=\"\":MM_keepBoth=\"\":MM_keepNone=\"\"
\' add the URL parameters to the MM_keepURL string For Each Item In Request.QueryString NextItem = \"&\" & Item & \"=\" If (InStr(1,MM_removeList,NextItem,1) = 0) Then MM_keepURL = MM_keepURL & NextItem & Server.URLencode(Request.QueryString(Item)) End If Next
\' add the Form variables to the MM_keepForm string For Each Item In Request.Form NextItem = \"&\" & Item & \"=\" If (InStr(1,MM_removeList,NextItem,1) = 0) Then MM_keepForm = MM_keepForm & NextItem & Server.URLencode(Request.Form(Item)) End If Next
\' create the Form + URL string and remove the intial \'&\' from each of the strings MM_keepBoth = MM_keepURL & MM_keepForm if (MM_keepBoth <> \"\") Then MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1) if (MM_keepURL <> \"\") Then MM_keepURL = Right(MM_keepURL, Len(MM_keepURL) - 1) if (MM_keepForm <> \"\") Then MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
\' a utility function used for adding additional parameters to these strings Function MM_joinChar(firstItem) If (firstItem <> \"\") Then MM_joinChar = \"&\" Else MM_joinChar = \"\" End If End Function %> <html> <head> <title>grabit</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"> </head> <body bgcolor=\"#FFFFFF\" text=\"#000000\"> <form name=\"menu_indhold\" method=\"get\" action=\"\"> <select name=selector onChange=\"if (this.options[this.selectedIndex].value != \'\') { location.href = this.options[this.selectedIndex].value; };\"> <% While (NOT rs_list.EOF) %> <option value=\"index.asp?ID=<%=(rs_list.Fields.Item(\"id\").Value)%>\" ><%=(rs_list.Fields.Item(\"teknologi\").Value)%></option> <% rs_list.MoveNext() Wend If (rs_list.CursorType > 0) Then rs_list.MoveFirst Else rs_list.Requery End If %> <option selected><%=(rs_indhold.Fields.Item(\"teknologi\").Value)%></option> </select> </form> <br> <% While ((Repeat1__numRows <> 0) AND (NOT rs_indhold.EOF)) %> <table border=\"0\" cellpadding=\"10\"> <tr> <td><%=(rs_indhold.Fields.Item(\"overskrift\").Value)%></td> <td> </td> </tr> <tr> <td> </td> <td><%=(rs_indhold.Fields.Item(\"kort_beskrivelse\").Value)%></td> </tr> </table> <% Repeat1__index=Repeat1__index+1 Repeat1__numRows=Repeat1__numRows-1 rs_indhold.MoveNext() Wend %> <p><br> </p> <p><br> </p> </body> </html> <% rs_list.Close() %> <% rs_indhold.Close() %>
<option value=\"index.asp?ID= <font face=\"Arial\" size=2> <p>ADODB.Fields</font> <font face=\"Arial\" size=2>error \'800a0cc1\'</font> <p> <font face=\"Arial\" size=2>Item cannot be found in the collection corresponding to the requested name or ordinal.</font> <p> <font face=\"Arial\" size=2>/modularisering/index.asp</font><font face=\"Arial\" size=2>, line 87</font>
Ahhhhhhhhhh ja selvfølgelig.......du prøver jo at udskrive værdien \'ID\' men den får du jo ikke med i dit recordset når du kun spørger Select Distinct teknologi........ ID kommer jo slet ikke med!!!!
Jeg har inset at jeg aldig vil kunne liste alle records hvor teknologi = flash når jeg kører med ID i URLén. Derfor er jeg nu gået over til index.asp?teknologi=flash og dette kan liste alle instanser hvor teknologi=flash.
Mit sidste problem er nu bare at min menu altid har to instanser af det som er valgt. hvis man vælger Flash står flash to steder. Hvordan undgår man dette? Ny kode vedlagt:
<select name=menu onChange=\"if (this.options[this.selectedIndex].value != \'\') { location.href = this.options[this.selectedIndex].value; };\"> <% While (NOT rs_list.EOF) %> <option value=\"index.asp?teknologi=<%=(rs_list.Fields.Item(\"teknologi\").Value)%>\" ><%=(rs_list.Fields.Item(\"teknologi\").Value)%></option> <% rs_list.MoveNext() Wend If (rs_list.CursorType > 0) Then rs_list.MoveFirst Else rs_list.Requery End If %> <option selected><%=(rs_indhold.Fields.Item(\"teknologi\").Value)%></option> </select>
Nej, den var der ikke helt, den skriver expr1000 i databindings listen under RS, når jeg laver teknologi om til et variabelnavn \'\' hvad kunne dette skyldes?
Altså, du må undskylde mig MEN køb en bog om asp og læs den fra ende til anden. Du er simpelthen nød til at vide lidt om hvad der sker bag kulisserne når du gør noget på første række.
Jeg har selv lige lavet en test magen til den du prøve på her, og jeg får ingen problemer overhovedet.
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.