Avatar billede qub- Novice
07. november 2005 - 17:10 Der er 12 kommentarer og
1 løsning

Problem med replyid i comment system

Hi eksperter

Jeg har lavet et commentsystem, og er pludselig rendt ind i et problem.. Jeg har bygget det op således at når man kommentere en anden comments, så linker man til den comment i databasen, og det bliver rykket ind under den comment..

Men mit problem kommer så når man skal slette en comment, hvor der er linket/skrevet andre comments under..
Så sletter den jo kun den comment jeg har sat den til. De comments der ligger under bliver ikke vist mere, men de ligger stadig i databasen.. Det er et STORT problem for mig :D (hvorfor behøver i ik at vide.. hehe)

Så altså på en eller anden måde skal skal jeg ind og sige at der hvor "replyid" (der hvor der bliver linket til comment) er ens med den id vi sletter, skal der sættes til deleted, og der hvor replyid så er til den nye vi sletter skal der sættes til deleted.. osv osv osv...


Nogen der har en smart løsning til dette?
Avatar billede jakobdo Ekspert
07. november 2005 - 17:39 #1
Vil du slette med sql: DELETE?
Eller vil du rette en værdi til = DELETED?

Men du kan jo gøre sådan:
DELETE FROM comments WHERE id = 1
DELETE FROM comments WHERE replyid = 1
Avatar billede qub- Novice
07. november 2005 - 17:41 #2
ja ved skam godt hvordan man sletter..
Hvis man tar det "bogstaveligt talt" skulle koden se således ud hvis der var 3 "undercomments"

DELETE FROM comments WHERE id = 1
DELETE FROM comments WHERE replyid = 1
DELETE FROM comments WHERE replyid = 2
DELETE FROM comments WHERE replyid = 3

Det holder jo ik rigtigt vel.. Så er der ik en smart måde at gøre det på
Avatar billede steven_ Nybegynder
07. november 2005 - 18:23 #3
Dine replys har vel et fælles id for den kommentar de ligger under?

Så hvad med blot at skrive: "where id = '" . $id . "' && replyid = '" . $id . "'"?
Avatar billede qub- Novice
07. november 2005 - 18:26 #4
Nej steven.. det er nemlig det de ikke har.. De har kun den de reply'er til..
Avatar billede jakobdo Ekspert
07. november 2005 - 18:52 #5
Hvordan ved du så hvilket reply som er til hvilken tråd?
Avatar billede qub- Novice
07. november 2005 - 18:55 #6
Hvis den første comment har id 1.. den replyer vi så til.. Den nye comment har id 2, og replyid 1.. hvis vi så replyer den comment får vores nye comment replyid 2..
Replyid er id på lige præcis den comment vi replyer
Avatar billede jakobdo Ekspert
07. november 2005 - 19:31 #7
Ahh, så du kan lave et helt træ?
Avatar billede qub- Novice
08. november 2005 - 16:19 #8
ja nemlig ja :)
Avatar billede jakobdo Ekspert
08. november 2005 - 16:21 #9
Så skal du jo lave noget rekursivt!
Vil du altid slette en hovedtråd?
Avatar billede qub- Novice
09. november 2005 - 17:10 #10
nej.. Det er nemlig der problemmet igen ligger, for så ku jeg jo bare gemme hovedtråden hver gang..

:)
Avatar billede jakobdo Ekspert
09. november 2005 - 18:35 #11
Men hvis du tager en replytråd, så vil dens id jo være replyid i dens replytråd.
Så igen, noget rekursivt er løsningen!
F.eks. må du lave:
SELECT replyid FROM tabel WHERE id = 1
Det resultat du så får, skal du så teste igen:
SELECT replyid FROM tabel WHERE id = (det resultat fra før)
og igen.
og igen.
Indtil du ikke får flere hits.
Avatar billede qub- Novice
08. marts 2008 - 16:16 #12
..
Avatar billede jakobdo Ekspert
08. marts 2008 - 16:40 #13
Hvad blev din løsning ?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Capgemini Danmark A/S

AI/Data Engineer

Forsvarets Efterretningstjeneste

Network engineer - Datacenter & Automation

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporterelever til Lokal IT på Aalborg Kaserne

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger it-supporter til Lokal IT Servicecenter i Karup