Toon posts:

[asp] Listbox en database uitlezen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mensen hier ben ik weer,
Ik heb een script waarmee ik een kolom van mn database in mn samenpers in een listbox. Maar nu is het probleem ( kijk anders ff: www.autorecycler.nl/db_pulldown.asp ) dat van al mn rijen met dezelfde input allemaal de zelfde keuzes krijg. Hoe krijg ik dit anders ? dwz dat bv bij voorfront (zie vb) maar een keer voorfront staat en dat ie dan alle rijen waar in de kolom (naam onderdeel) voorfront samenvoegt tot een en dan alle resultaten op voorfront eruit gooit ?

Snappie ? Nee :? he MSN@HOFSTEENGE.TK

mn script
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<%
Dim objDC, objRS

' Create and establish data connection
Set objDC = Server.CreateObject("ADODB.Connection")
objDC.ConnectionTimeout = 15
objDC.CommandTimeout = 30

'Use this line to use Access
'objDC.Open "DBQ=" & Server.MapPath("database.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;MaxBufferSize=8192;Threads=20;", "username", "password"

'Our SQL Server code - use above line to use sample on your server
Set Conn = Server.CreateObject("ADODB.connection") 
objDC.Open "w00321988_onderdelen_sql","eh","eh"

' Create recordset and retrieve values using the open connection
Set objRS = Server.CreateObject("ADODB.Recordset")
' Opening record set with a forward-only cursor (the 0) and in read-only mode (the 1)

' If a request for a specific id comes in, then do it o/w just show pulldown
If Len(Request.QueryString("id")) <> 0 Then
    ' request record for requested id
    objRS.Open "SELECT * FROM onderdelen WHERE id = " & Request.QueryString("id"), objDC, 0, 1
    ' Show selected record
    If Not objRS.EOF Then
        objRS.MoveFirst
        %>
        <table border="2">
            <tr>
                <td><strong>ID Number</strong></td>
                <td><strong>First Name</strong></td>
                <td><strong>Last Name</strong></td>
                <td><strong>Month's Sales</strong></td>
            </tr>
            <tr>
                <td align="center"><%= objRS.Fields("id") %>&nbsp;</td>
                <td align="left"><%= objRS.Fields("merk") %>&nbsp;</td>
                <td align="left"><%= objRS.Fields("type") %>&nbsp;</td>
                <td align="right"><%= objRS.Fields("bouwjaar") %>&nbsp;</td>
            </tr>
        </table>
        <%
    End If
    objRS.Close
End If

objRS.Open "onderdelen", objDC, 0, 1
' Loop through recordset and display results
If Not objRS.EOF Then
    objRS.MoveFirst
    ' the form below calls this file only this time with an id in the QueryString
    %>
    <form action="db_pulldown.asp" method="get">
    <select name="id">
        <option></option>
    <%
    ' Continue until we get to the end of the recordset.
    Do While Not objRS.EOF
        ' For each record we create a option tag and set it's value to the employee id
        ' The text we set to the employees first name combined with a space and then their last name
        %>
        <option value="<%= objRS.Fields("id") %>"><%= objRS.Fields("onderdeel")%></option>
        <%
    ' Get next record
    objRS.MoveNext
    Loop
    %>
    </select>
    <input type="submit" value="Submit" />
    </form>
    <%
End If

' Close Data Access Objects and free DB variables
objRS.Close
Set objRS =  Nothing
objDC.Close
Set objDC = Nothing
%>

THNX

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Normaal gesproken haal je dubbele waardes eruit via een SELECT DISTINCT, de code
code:
1
objRS.Open "onderdelen", objDC, 0, 1

zou dan als volgt moeten zijn:
code:
1
objRS.Open "SELECT DISTINCT onderdeel FROM onderdelen ORDER BY onderdeel", objDC, 0, 1

(de ORDER BY is niet verplicht maar wel zo netjes)

Je kan dan echter niet het ID veld erbij zetten want dat maakt juist weer ieder record uniek, als option value moet je dan ook het veld onderdeel gebruiken.

Het tweede stukje van jouw beschrijving is niet echt duidelijk maar blijkbaar wil je het gekozen onderdeel ergens uit gooien?
Dan zou kunnen met de volgende query:
DELETE FROM <tabel> WHERE Onderdeel = "<gekozen onderdeel>"

Ik hoop dat dit je wat op weg helpt

Verwijderd

Topicstarter
kijk onder het soort onderdeel dat gekozen is vallen allerlei soorten dwz allemaal verschillende typen autozz maar nu wil ik dat alles wat maar met dat onderdeel te maken heeft (dmv kolom onderdeel) in de resultatenpagina komt te staan snappie ?

MSN@HOFSTEENGE.TK nogmaals misschien makkelijker ;)

Verwijderd

Topicstarter
Hallo ? kan iemand me misschien verder helpen en voor vragen MSN@HOFSTEENGE.TK

bvd bij voorbaat dank ;):)

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Ik zet mijn antwoord gewoon hier neer en niet via mail want daar is het toch een forum voor?

Probeer het volgende eens:
Vervang
code:
1
objRS.Open "SELECT * FROM onderdelen WHERE id = " & Request.QueryString("id"), objDC, 0, 1

door
code:
1
objRS.Open "SELECT * FROM onderdelen WHERE onderdeel = """ & Request.QueryString("id") & """", objDC, 0, 1

(de extra quotes omdat het een string is in plaats van een id)
en vervang zoals ik al zei
code:
1
objRS.Open "onderdelen", objDC, 0, 1

door
code:
1
objRS.Open "SELECT DISTINCT onderdeel FROM onderdelen ORDER BY onderdeel", objDC, 0, 1

en vervang ook
code:
1
<option value="<%= objRS.Fields("id") %>"><%= objRS.Fields("onderdeel")%></option>

door
code:
1
<option value="<%= objRS.Fields("onderdeel") %>"><%= objRS.Fields("onderdeel")%></option>

Dan zou je toch al een aardig eind in de goede richting zitten dacht ik.

Verwijderd

Topicstarter
Volgende fout zit in deze regel:
code:
1
objRS.Open "SELECT * FROM onderdelen WHERE onderdeel = """ & Request.QueryString("id") & """", objDC, 0, 1

Cannot use empty object or column names. Use a single space if necessary.

/db_pulldown.asp, line 22

was eerst niet het geval dat wil zeggen eerst geen fouten...

THNX voor je laters ;)

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Ik geloof dat ik de verkeerde quotes heb gebruikt, het moeten single in plaats van double zijn

Zoiets dan:
code:
1
objRS.Open "SELECT * FROM onderdelen WHERE onderdeel = '" & Request.QueryString("id") & "'", objDC, 0, 1

Verwijderd

Topicstarter
lister, dit werkt perfect dwz er staan nu geen dubbelen meer in maar nu wil ik ook graag dat hij alles selecteert dwz niet op een bepaalde id alles eruit gooien maar alles op de kolom onderdeel

THNX
Pagina: 1