webForumDet fria alternativet

SELECT DISTINCT...eller nåt ;)

ASP

11 svar · 287 visningar · startad av zlasher

Medlem sedan okt. 2001157 inlägg
Frågan#1

Jag har gjort ett relationssystem till en community och undrar om det går att göra (som på lunar och många andra communitys) så de relationer som går under samma rubrik lägger sig under varandra, den ska alltså inte visa likadana relationstyper.

så det blir så här..

"VÄN".
------------------
person 1
person 2
person 3

istället för så här som det är just nu:

"VÄN"
-------------
person 1
"VÄN"
---------------
person 2..

går det att göra det med "SELECT DISTINCT(relation)" eller nåt sånt??

vore jättebra om jag kunde få hjälp med det här!! :)

Medlem sedan juli 20003 825 inlägg
#2

Hur har du gjort idag då?

<%
SQL = "SELECT * FROM [friendsTable] WHERE [intUserID] = " & session("strUserID") ' <<-- Denna är satt vid inloggningen i en annan del av webbplatsen
Set mySQL = Conn.Execute(SQL)

response.write "Mina vänner:<BR>"
IF NOT mySQL.EOF THEN
DO UNTIL mySQL.EOF
-- response.write mySQL("vännens namn")
-- mySQL.MoveNext
-- IF NOT mySQL.EOF THEN response.write "<BR>" ' <<-- du vill inte ha en radbrytning på den sista posten.
LOOP
ELSE
-- response.write "Du har inga registrerade vänner."
END IF

%>

Jag har en svag känsla av att jag inte riktigt har fattat din fråga korrekt....

Medlem sedan apr. 20021 203 inlägg
#3

Kika på ett forums uppbyggnad, detlåter som om det skulle vara samma.

Medlem sedan juli 20003 825 inlägg
#4

Öööhh... Jag fattar inte! Man kan bygga forum lite hur som helst och det finns egenligen inget som är rätt eller fel.

Jag överlåter åt någon annan att svara!

Medlem sedan feb. 200112 078 inlägg
#5

Det har väl egentligen inte med SQL-satsen att göra, utan mer med presentationen av det...

Typ..

if not rs.eof then
   do until rs.eof

      if not rs("usrKategori") = strBefKategori then
         response.write rs("usrKategori") & "<br>"
      end if
      response.write rs("usename") & "<br>"
      
      strBefKategori = rs("usrKategori")

   rs.movenext
   rs.loop
else
   response.write "Du har inga vänner. Du är dum."
end if

På det sättet lägger du kategorin i variabeln 'strBefKategori' och efter varje loop, kollar ifall den aktiva är den samma som den förra. Om den är det, skrivs kategorin inte ut, annars skrivs den ut. :)

Medlem sedan okt. 2001157 inlägg
#6

håller på att kolla den där koden du skrev in OverRRidE, men så länge kan jag ju lägga in hela koden... så får ni se hur det är för tillfället :)

[kod]
<!-- #include file="adovbs.inc" -->

<%
Set objCon = Server.CreateObject("ADODB.Connection")
objcon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")&";pwd=lösenord"

stRSQL = "SELECT * FROM friends where toiD =" &session("id") &"OR fromid="&session("id") &" AND Approved = Yes"
Set rs = objCon.Execute(strSQL)

%>

<html>
<head>
<LINK REL=stylesheet HREF="samuel.css" TYPE="text/css">
<body class="bg">

<table width="100%" class="ram">
<tr><td colspan="5"><font class="text">VÄNNER:<hr color="navy" size="1"></td></tr>

<% do until rs.eof%>
<tr><td colspan="4"><font class="text">
<% if rs("toid") = session("id") then %>
<%else%><%=rs("relation")%>&nbsp &nbsp </td></tr>
<td>
<a href="whois_index2.asp?checkid=<%=rs("toid")%>" target="index">
<%=rs("Toname")%></a>&nbsp &nbsp </td><td>
<%=rs("age")%> från
<%=rs("stad")%></td><td align="right">

Info|<a href="do_delete_friend.asp?delid=<%=rs("id")%>" target="index">Ta bort</a>
</td></tr>
<tr><td colspan="4">
<%end if%>
<% if rs("fromid") = session("id") then %>
<%else%>
<%=rs("relation")%>&nbsp &nbsp </td></tr><td>
<a href="whois_index2.asp?checkid=<%=rs("fromid")%>" target="index">
<%=rs("namn")%></a>&nbsp &nbsp </td><td>
<%=rs("fromage")%> från
<%=rs("fromstad")%></td><td align="right">

</td></tr>
<%end if%>
<%
rs.movenext
loop
rs.close
objcon.close
%>

Medlem sedan okt. 2001157 inlägg
#7

fast OveRRidE, när jag provade din kod fick jag samma fel men när jag använde "select distinct(relation)" kom det bara en t.ex "Vän".

men problemet kvarstår då den inte skrev ut användarnamnet på den andra "vännen" utan bara en vän..

men det kanske går att fixa till lite lätt...? :)

Medlem sedan dec. 200012 464 inlägg
#8
strBefKategori = ""
do until rs.eof
      if rs("usrKategori") <> strBefKategori then
         response.write rs("usrKategori") & "<br>"     
         strBefKategori = rs("usrKategori")    
      end if
      response.write rs("usename") & "<br>"      
      rs.movenext   
loop
Medlem sedan mars 20015 287 inlägg
#9

Är det inte lite onödigt att ha så pass mycket växlingar asp/html?

<% if rs("toid") = session("id") then %> 
<%else%><%=rs("relation")%>
Medlem sedan okt. 2001157 inlägg
#10

@solbulle:
jag har väldigt mycket onödiga grejer på alla mina sidor!! :)
dessvärre vet jag inte hur jag ska förkorta ner dom...men det har funkat hittills så jag får köra på det! :D

@LarsG:
du det där funkade ju!! tack så hemskt mycket!! :)
men jag har dock ett sista problem :p
det är så att det bara funkar om de likadana relationerna lägger sig likadant i databasen...eller förresten...det kanske går att ordna det genom att göra en "order by relation desc"??

hmm...ska prova det!!
eller hur lägger jag till en order by i den här strängen? :)

stRSQL = "SELECT * from friends where toiD =" &session("id") &"OR fromid="&session("id") &" AND Approved = Yes"

kommer det att funka tror du?

Medlem sedan feb. 200112 078 inlägg
#11

Sorry, den första var skrivet lite snabbt innan idag.. :)

stRSQL = "SELECT * from friends where toiD =" &session("id") &" OR fromid="&session("id") &" AND Approved = Yes ORDER BY relation DESC"

Kanske, om jag fattat rätt? (Du hade glömt ett mellanslag också.. före 'OR'.)

Medlem sedan okt. 2001157 inlägg
#12

nu klarar jag mig nog!! det funkar utmärkt!! thanks for everything!! :D :D

253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)