ironheadMedlem sedan mars 20011 346 inlägg Hej igen!
Jag har en tabell enl. följande:
forum
-------
MsgID (räknare)
ParentID [int]
Show [int]
Body (text)
Title (varchar)
Detta är tabellen till ett trådat forum.
Jag har gjort ett admin-gränssnitt som gör att man kan gå in på ett inlägg och sätta "Show=0" och gömma just det inlägget (istället för att radera det).
Problemet är: Hur gör man en SELECT-sats som kan leta reda på alla relaterade trådar (ParentID) till det inlägget som man tar bort och de efterkommande svaren på det inlägget?
@ndersMedlem sedan juni 200032 969 inlägg Hmm...
Om jag inte missförstår:
SELECT f1.MsgID FROM forum f1 INNER JOIN forum f2 ON f1.MsgID = f2.ParentID WHERE f2.MsgID = 4711
mvh
ironheadMedlem sedan mars 20011 346 inlägg @nders: Det där förstod jag inte alls....jag vill alltså uppdatera (UPDATE) fältet "Show" med 0 (noll) från "MsgId" 4711 och alla trådar som är relaterade till den tråden i nedstigande led :)
Alla meddelanden ligger i "forum"-tabellen
alltså:
MsgId-----ParentID
4711------0
4712------4711
4723------4712
.
.
.
4799-----4723
@ndersMedlem sedan juni 200032 969 inlägg Säg det då. Som man frågar får man svar... ;)
Jag skulle vilja föreslå att du gör en rekursiv funktion i det scriptspråk du använder för att uppdatera en nivå i taget. Det finns nog en del att hitta om du söker i SQL-forumet. Exempelvis vet jag att Palle ställer en närbesläktad fråga i en relativt ny tråd. ;)
Visar du alltså ett och samma inlägg i flera trådar? Jag är lite förvirrad...
PalleMedlem sedan apr. 20003 174 inlägg Känns som om du och jag sitter i samma båt ironhead. ;)
http://www.webforum.nu/showthread.php?s=&postid=936671#post936671
Tror vi har en liknande uppbyggnad, dock i olika syften,
men inget av det som jag har testat har fungerat. :(
ironheadMedlem sedan mars 20011 346 inlägg
@nders skrev:
Visar du alltså ett och samma inlägg i flera trådar? Jag är lite förvirrad...
Nej!
MsgId-----ParentID---Title
4711------0----------test1
4712------4711-------re: test1
4723------4712-------re: re: test1
.
.
.
4799-----4723--------re: re: re: test1
Förstår du då :)
@ndersMedlem sedan juni 200032 969 inlägg Ah, nu förstår jag. Det är nog jag som inte förstår hur ett trådat forum fungerar. ;)
Så, när ett inlägg raderas så raderas även svaren på det inlägget, är det så du menar? Det låter totalt livsfarligt, men skulle gå att lösa utan en allt för klurig rekursiv funktion.
mvh
ironheadMedlem sedan mars 20011 346 inlägg Har försök göra nån slags av quick and dirty-lösning, men det har ju inte med SQL-forumet att göra egentligen...
ofmsgid = id:et på den tråd jag vill radera
SET RS = oConn.Execute("SELECT MsgID,ParentId FROM Messages WHERE MsgID=" & ofmsgid)
ParentId = RS("ParentId")
oConn.Execute("UPDATE Messages SET Show=0 WHERE MsgID=" & ofmsgid & " AND ParentId=" & ParentId)
SET RS2 = oConn.Execute("SELECT MsgID,ParentId FROM Messages WHERE ParentID=" & ofmsgid)
ofmsgid = RS2("MsgId")
ironheadMedlem sedan mars 20011 346 inlägg
Palle skrev:
Känns som om du och jag sitter i samma båt ironhead. ;)
http://www.webforum.nu/showthread.php?s=&postid=936671#post936671
Tror vi har en liknande uppbyggnad, dock i olika syften,
men inget av det som jag har testat har fungerat. :(
Tuta åt mig om du kommer på nåt finurligt, så tutar jag om jag fixar det... :e