Avatar billede jmc Nybegynder
06. september 2001 - 17:18 Der 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!
Avatar billede avlund Nybegynder
06. september 2001 - 18:09 #1
\"Jeg er et database field\"

tal om at være opslugt af teknologi
Avatar billede avlund Nybegynder
06. september 2001 - 18:11 #2
Faktisk er hele sætningen skingrende sindssyg:

\"Jeg er et database field ved navn \'teknologi\' som kan indeholde flere instanser er flash og andre forskellige navne.\"

Det er jo rablende galt!!!! Og så er det to sætninger der på magisk vis er smeltet sammen ved \"flere instanser\".
Avatar billede avlund Nybegynder
06. september 2001 - 18:12 #3
Men nok om det. Stik mig en URL, så vil jeg kigge på sagen...
Avatar billede bojohansen Nybegynder
06. september 2001 - 18:39 #4
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.
Avatar billede bojohansen Nybegynder
06. september 2001 - 18:46 #5
http://bo-johansen.adsl.dk/eksperten/106562/

eller sådant i UD klik format :)
Avatar billede jmc Nybegynder
06. september 2001 - 19:39 #6
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.
Avatar billede bojohansen Nybegynder
06. september 2001 - 20:16 #7
Det var så lidt jmc, men det er helt Ok :-)) det giver lidt kryder til den ellers kedelige skærm :)

Avatar billede codebase Praktikant
06. september 2001 - 23:25 #8
orderet er DISTINCT


SELECT DISTINCT teknologi from DATABASE

eller
SELECT DISTINCT max(id), teknologi from DATABASE ORDER BY id


Avatar billede jmc Nybegynder
07. september 2001 - 01:06 #9
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>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</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()
%>

Avatar billede bojohansen Nybegynder
07. september 2001 - 01:55 #10
Det er fordi du skriver :

SELECT DISTINCT kolonne_navn From tabel_navn

Hvor du skal skrive :

SELECT DISTINCT kolonne_navn From Database_Navn
Avatar billede jmc Nybegynder
07. september 2001 - 02:01 #11
jeg ikke forstå, nu skriver den:

\'
Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Could not find file \'C:\\WINNT\\system32\\d.mdb\'.

/modularisering/index.asp, line 12
Avatar billede bojohansen Nybegynder
07. september 2001 - 02:02 #12
Jeg er må vist hellere hoppe i seng, for nu vrøvler jeg vist !!!

SELECT DISTINCT teknologi FROM tbl_web

er god nok :)

check lige at dine db feldter er stavet rigtigt

http://www.devguru.com/Technologies/jetsql/quickref/select.html

se ca. midt på siden.
Avatar billede jmc Nybegynder
07. september 2001 - 02:08 #13
konfliktet må ske i formen!!

mit output er:

\'
<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; };\">
   
    <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>
Avatar billede bojohansen Nybegynder
07. september 2001 - 02:18 #14
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!!!!

SELECT DISTINCT teknologi, ID FROM tbl_web
Avatar billede bojohansen Nybegynder
07. september 2001 - 02:19 #15
Læg altid lige et link til den side du får fejl på, det gør det hele meget nemmere :-))
Avatar billede jmc Nybegynder
07. september 2001 - 09:12 #16
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>
Avatar billede bojohansen Nybegynder
07. september 2001 - 11:20 #17
Ok, så skal du jo i dit rs_indhold lave SQL\'en om til :

Select Distinct \'teknologi\' from tbl_web

Husk at sætte variablerne til

Name = teknologi
Defaultvalue = Hvad du selv ønsker
Runtime Value = Request.Querystring(\"teknologi\")

og det er selvfølgelig i Advanced mode.
Avatar billede jmc Nybegynder
07. september 2001 - 16:02 #18
Tak for hjælpen, men der bliver mere at lave! Starter et nyt spørgsmål!
Avatar billede jmc Nybegynder
07. september 2001 - 16:10 #19
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?
Avatar billede jmc Nybegynder
07. september 2001 - 16:14 #20
undskyld fejlmeddellelsen er:
Item cannot be found in the collection corresponding to the requested name or ordinal.

når jeg gør sådan:
Name = teknologi
Defaultvalue = Hvad du selv ønsker
Runtime Value = Request.Querystring(\"teknologi\")

Avatar billede bojohansen Nybegynder
07. september 2001 - 16:46 #21
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.
Avatar billede jmc Nybegynder
07. september 2001 - 16:57 #22
du har ret
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