webForumDet fria alternativet

Access med samma ID

ASPur ASP

6 svar · 604 visningar · startad av Exploit

Medlem sedan nov. 2006107 inlägg
Frågan#1

Hej.
Jag har en länk portal som är uppbyggd på en access databas.
Jag har företag som ligger under flera kategorier.
I dags läget så har jag "kopierat" företags namn samt den infon som ska visas det enda som skiljer dom åt i databasen är att kategori infon är olika.
Men problemet är den att det är olika ID på samma företag och nu vill jag fixa så att samma företag har samma ID oavsett hur många rader jag har i access databasen med samma företag...

Medlem sedan dec. 19996 721 inlägg
#2

Om det är samma företag så ska du bara ha en rad i tabellen. Sedan kopplar du kategorierna till företagen mha en kopplingstabell.

Tabell: Companies
Kolumner: CompanyId, CompanyName, etc.

Tabell: Categories
Kolumner: CategoryId, CategoryName, etc.

Tabell: CompanyCategories
Kolumner: CompanyId, CategoryId

Medlem sedan nov. 2006107 inlägg
#3

där hängde jag inte med för fem öre??
ska jag skapa en till tabell i databasen? o där lägger jag in mina olika kategorier?

Men i sådna fall vart bestämmer jag vilka kategorier som respektive företag ska ligga under då?

Medlem sedan nov. 2006107 inlägg
#4

så här anropar jag respektive katalog : kat.asp?kat=bil

och så här ser min kat.asp ut

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- #include file = "adovbs.inc" -->
<html><link href="style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/lankar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

IF Request.Querystring("kat") = "" then
kat = "barnklader"
ELSE
kat = Request.Querystring("kat")
END IF

If kat = "barnklader" Then
	SQL = "Select * From lankar Where kat= 'barnklader' ORDER BY namn desc"
ElseIf kat = "leksaker" Then
	SQL = "Select * From lankar Where kat= 'leksaker' ORDER BY namn desc"
ElseIf kat = "barnvagnar" Then
	SQL = "Select * From lankar Where kat= 'barnvagnar' ORDER BY namn desc"
ElseIf kat = "mamma" Then
	SQL = "Select * From lankar Where kat= 'mammma' ORDER BY namn desc"
ElseIf kat = "bil" Then
	SQL = "Select * From lankar Where kat= 'bil' ORDER BY namn desc"
ElseIf kat = "dack" Then
	SQL = "Select * From lankar Where kat= 'dack' ORDER BY namn desc"
ElseIf kat = "bat" Then
	SQL = "Select * From lankar Where kat= 'bat' ORDER BY namn desc"
ElseIf kat = "mc" Then
	SQL = "Select * From lankar Where kat= 'mc' ORDER BY namn desc"
ElseIf kat = "bilstereo" Then
	SQL = "Select * From lankar Where kat= 'bilstereo' ORDER BY namn desc"
ElseIf kat = "reservdelar" Then
	SQL = "Select * From lankar Where kat= 'reservdelar' ORDER BY namn desc"	
ElseIf kat = "husbil" Then
	SQL = "Select * From lankar Where kat= 'husbil' ORDER BY namn desc"	
ElseIf kat = "snoskoter" Then
	SQL = "Select * From lankar Where kat= 'snoskoter' ORDER BY namn desc"	
ElseIf kat = "moped" Then
	SQL = "Select * From lankar Where kat= 'moped' ORDER BY namn desc"
ElseIf kat = "datorer" Then
	SQL = "Select * From lankar Where kat= 'datorer' ORDER BY namn desc"	
ElseIf kat = "tillbehor" Then
	SQL = "Select * From lankar Where kat= 'tillbehor' ORDER BY namn desc"	
ElseIf kat = "hundkatt" Then
	SQL = "Select * From lankar Where kat= 'hundkatt' ORDER BY namn desc"	
ElseIf kat = "akvarium" Then
	SQL = "Select * From lankar Where kat= 'akvarium' ORDER BY namn desc"	
ElseIf kat = "hast" Then
	SQL = "Select * From lankar Where kat= 'hast' ORDER BY namn desc"	
ElseIf kat = "ovrigahusdjur" Then
	SQL = "Select * From lankar Where kat= 'ovrigahusdjur' ORDER BY namn desc"	
ElseIf kat = "bocker" Then
	SQL = "Select * From lankar Where kat= 'bocker' ORDER BY namn desc"	
ElseIf kat = "tidningar" Then
	SQL = "Select * From lankar Where kat= 'tidningar' ORDER BY namn desc"	
ElseIf kat = "begagnat" Then
	SQL = "Select * From lankar Where kat= 'begagnat' ORDER BY namn desc"	
ElseIf kat = "film" Then
	SQL = "Select * From lankar Where kat= 'film' ORDER BY namn desc"	
ElseIf kat = "tvspel" Then
	SQL = "Select * From lankar Where kat= 'tvspel' ORDER BY namn desc"
ElseIf kat = "musik" Then
	SQL = "Select * From lankar Where kat= 'musik' ORDER BY namn desc"
	ElseIf kat = "jakt" Then
	SQL = "Select * From lankar Where kat= 'jakt' ORDER BY namn desc"
	ElseIf kat = "friluftsliv" Then
	SQL = "Select * From lankar Where kat= 'friluftsliv' ORDER BY namn desc"
	ElseIf kat = "fiske" Then
	SQL = "Select * From lankar Where kat= 'fiske' ORDER BY namn desc"
End If
	
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="stylesheet" href="inc/style.css" type="text/css">
<style type="text/css">
<!--
-->
</style>
</head>

<body>
<table width="400" border="0" align="center" cellpadding="0" bordercolor="#000000" bgcolor="#76A5C4">
              <tr>
                <td colspan="2"><p class="style1">&nbsp;</p>
                </td>
              </tr>
              <tr>
                <td style="border-bottom: #009900 1px solid" colspan="2"><font face="Verdana" size="1">&nbsp;&nbsp;&nbsp;</font></td>
              </tr>
              <tr>
                <td colspan="2"><div align="left"></div></td>
              </tr>
              <tr>
                <td style="border-top: #009900 1px solid" colspan="2"><div align="center"><font face="Verdana" size="1">&nbsp;&nbsp;&nbsp;</font></div></td>
              </tr>
              <% IF RecSet.EOF then %>
              <tr>
                <td colspan="2"><div align="center" class="style1"><font size="1" face="Verdana">Inga l&auml;nkar i denna 
                  kategorin &auml;nnu... </font></div></td>
              </tr>
              <% ELSE
Do until RecSet.EOF
%>
              <tr>
                <td width="88" bgcolor="#76A5C4"><img src="<%=RecSet("banner")%>" width="88" height="31"></td>
                <td width="302" bgcolor="#76A5C4"><font size="1" face="Verdana" color="#000066"><b><a href="klick.asp?id=<%=RecSet("id")%>" target="_blank" onClick="javascript:location.reload()" onMouseOver="self.status='<%= RecSet("hemsida")%>';return true" onMouseOut="self.status=' ';return true"><%=RecSet("namn")%></a> </b> </font><font size="1" face="Verdana"><span class="style3">(</span></font><span class="style3"><font size="1" face="Verdana"><%=RecSet("klick")%></font><font size="1" face="Verdana" class="style3"> klick)</font></span> </td>
              </tr>
              <tr>
                <td colspan="2" bgcolor="#76A5C4"><div align="left">
                  <p><font size="1" face="Verdana" class="style1"><%=RecSet("text")%><br>
                  </font><font face="Verdana" size="1"><img src="hr.gif" width="300" height="10"></font></p>
                </div></td>
              </tr>
              <tr>
                <td colspan="2" bgcolor="#76A5C4"><font face="Verdana" size="1">&nbsp;&nbsp;&nbsp;</font></td>
              </tr>
              <%
Recset.MoveNext
Loop
End If
Recset.Close
Connect.Close

Set Recset = Nothing
Set Connect = Nothing
%>
              <tr>
                <td colspan="2" style="border-bottom: #009900 1px solid"><font face="Verdana" size="1">&nbsp;&nbsp;&nbsp;&nbsp;</font></td>
              </tr>
</table>
</body>
</html>
Medlem sedan dec. 19996 721 inlägg
#5

Det verkar som om du har en tabell som heter "lankar". I den vill vi inte lagra kategorin, utan den ska vi plocka ut till en annan tabell, som vi kallar "kategorier"

id (räknare), kat (text)
----------------------
1,Barnkläder
2.Leksaker

etc.

För att koppla ihop dessa så gör vi en tredje tabell, som vi kallar "lankkategorier"

lankId(tal),kategoriId(tal)
------------------------
1,2
2,3
5,6

etc. (låtsasvärden)

För att söka ut alla länkar i kategorin "Barnkläder" blir frågan

SELECT l.* FROM lankar l, kategorier k, lankkategorier lk WHERE l.id=lk.lankId AND k.id=lk.kategoriId AND k.kat='Barnkläder'

eller ännu hellre

SELECT l.* FROM lankar l, kategorier k, lankkategorier lk WHERE l.id=lk.lankId AND k.id=lk.kategoriId AND k.id=1

Ta en rejäl titt på den SQL-frågan så ser du hur logiskt det är.

OBS! Den massiva if-sats som du skrivit är väldigt onödig. Alla 57 rader kan sammanfattas till:

SQL = "Select * From lankar Where kat= '" & replace(kat,"'","''")  & "' ORDER BY namn desc"
Medlem sedan nov. 2006107 inlägg
#6

Oki.
denna kod/script är hämtat ifrån https://www.JoakimWeb.se
så jag har inte skrivit det själv men som du skriver så verkar det väldigt onödigt med så mycket kod för en sån här sak..

ska testa dina olika exempel ovan så får vi se om jag kan få ihop det annars hojtar jag till igen..

Medlem sedan dec. 19996 721 inlägg
#7

Fy skäms, JoakimWeb... :)

Bra att du försöker själv, Exploit. Det gillar jag.

/G

139 ms totalt · 3 externa anrop · v20260731065814-full.8a4e7caf
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)