Avatar billede 17196 Nybegynder
21. november 2007 - 18:39 Der er 26 kommentarer og
1 løsning

angående kommentar nummer på forum

Da svar strukturen er rekursivt opbygget, er min umiddelbare løsning at tælle svar inden det nye svar bliver indsat, og så sætte svarnummer plus 1.
Så kommer spørgsmålet - kunne man tænke sig, at man kunne komme ud for at 2 svar ville få samme nummer?
Er der en bedre løsning?
Avatar billede nielle Nybegynder
21. november 2007 - 18:50 #1
Hvorfor ikke bare sætte svarnummer til at være en auto_increment? Så tæller den selv helt automatisk op.
Avatar billede 17196 Nybegynder
21. november 2007 - 19:00 #2
Fordi svar fra flere tråde er samlet i tabellen. Så kommer svar 1 i tråd 455 vel til at blive alt andet en 1 :D? Eller?
Avatar billede nielle Nybegynder
21. november 2007 - 19:06 #3
Jeg læse spørgsmålet som om at svar helst ikke måtte have det samme nummer?
Avatar billede 17196 Nybegynder
21. november 2007 - 19:15 #4
Hmm, jamen det må de heller ikke, altså indenfor det givne tråd ID.
Svarene har selvfølgelig et unikt ID (auto_increment).
Avatar billede nielle Nybegynder
21. november 2007 - 19:27 #5
Ok, men hvorfor give dem svar-numre på oprettelses tidspunktet. Hvorfor ikke bare smække nummeret på når at du lister svarene til et spørgsmål i en løkke?
Avatar billede 17196 Nybegynder
21. november 2007 - 19:44 #6
Jamen det ville jeg også gerne, men det synes jeg ikke jeg kan få til at virke, da de jo ikke bare bliver listet sådan 1-2-3-4, og så er der også det, at hvis en kommentar er blevet slettet, så skal den stadig tælles med.
Avatar billede nielle Nybegynder
21. november 2007 - 19:49 #7
Jeg kan ikke forstå at det er et problem at den bliver listet 1 2 3 4 - er det ikke det den skal? Angående huller pga. slettede kommentare: Hvorfor vil du have dem vist som huller i rækkefølgen?
Avatar billede 17196 Nybegynder
21. november 2007 - 20:00 #8
Kommentar strukturen er jo rekursiv og tager "parent" som parameter, derfor vil strukturen tit være noget ala 1-3-2-4-5 eller whatever.
Avatar billede 17196 Nybegynder
21. november 2007 - 20:05 #9
Hov, og det med slettede kommentarer er heller ikke nødvendigt, men jeg vil gerne vise brugeren at en kommentar er slettet, og i forvejen vil man kunne se en brudt linie:
|
|_svar
| |
| |tom
|
|_svar
Avatar billede nielle Nybegynder
21. november 2007 - 20:22 #10
Ok, jeg tror at jeg nu har fattet dit problem. :^)

Umiddelbart er din allerede foreslåede løsning god nok ... hvis der altså ikke er *meget* trafik på dit site. Folk skal virkeligt snuple over hinanden hvis der skal opstå dubletter ... men det kan der altså godt hvis du er virkelig uheldig.

Hvis der er behov for en løsning på dette så skal jeg nok vide lidt mere om de tabeller du har gang i.
Avatar billede 17196 Nybegynder
21. november 2007 - 20:30 #11
Ja, jeg ved jo godt at min ene bruger (mig selv inklusiv) aldrig vil kunne komme ud for det, med det er princippet i det.
Jeg smider sgu lidt kode, for jeg er også interesseret i at begrænse min sql kald.
Forkortet version:
function show_comment($parent, $topic_id) {
    global $mysqli;
$rs = $mysqli->query(sprintf("
      SELECT bla bla FROM reply
      LEFT JOIN user
      ON reply.user=user.name
      WHERE topicID = '$topic_id'
      AND answerID = %d",$parent));
   
    while($row = $rs->fetch_assoc() ){   
       
<div class="isReplyContent"> bla bla </div>

        <div class="isReply">
<img src="gfx/btn_reply.gif" border="0" class="domroll gfx/btn_reply_over.gif" title="Svar" onClick="answerPost('<?=$row[replyID]?>','<?=$row[user]?>');">
          <? show_comment($row['replyID'], $topic_id); ?>
        </div>
    </div>
    <?
    }
}
show_comment($row['replyID'], $topic_id);
Avatar billede 17196 Nybegynder
21. november 2007 - 20:36 #12
Dump:
CREATE TABLE `reply` (
  `replyID` int(9) NOT NULL auto_increment,
  `topicID` int(9) NOT NULL,
  `answerID` int(9) NOT NULL,
  `user` varchar(255) NOT NULL,
  `comment` text NOT NULL,
  `dato` varchar(80) NOT NULL,
  `del` tinyint(3) NOT NULL default '0',
  `delcomment` text NOT NULL,
  `nummer` int(11) NOT NULL,
  PRIMARY KEY  (`replyID`)
)

Delcomment er fordi der også bare er mulighed for at fjerne en kommentar, i det tilfælde vil jeg stadig have mulighed for at se den oprindelige tekst, og bliger vil kun se: kommentar slettet af GUD(mig)
Avatar billede 17196 Nybegynder
21. november 2007 - 20:40 #13
http://explosif.dk/crap/nielle.txt

Der er hele funktionen!
Avatar billede nielle Nybegynder
21. november 2007 - 21:53 #14
Jeg ville selv dele op i to tabeller: en til størgsmål, og en til kommentarene. På den måde kan man hurtigt finde ud af hvor mange kommentare der er til et givet spørgsmål uden at skulle lave rekursive kald.
Avatar billede 17196 Nybegynder
21. november 2007 - 22:17 #15
Det har jeg svært ved at se hvorden det skulle kunne lade sig gøre.
Men du mener at de svar der ikke har et svar-id, skal i en  tabel for sig?

Det er jo muligt at svar på noget som allerede har/er et svar/id. Så derfor kan man ikke bare inddele det i spørgsmål/kommentarer.

Det er selvfølgelig allerede indelt i tråd og svar. Jeg er forvirret nu :(
Avatar billede nielle Nybegynder
21. november 2007 - 22:57 #16
Det er muligvis mig som er forvirret ... du vise kun tabellen 'reply' så jeg gik mere eller mindre ud fra at alt - spørgsmål og svar - kom i den? Men du harmåske en tabel til spørgsmålene?
Avatar billede 17196 Nybegynder
21. november 2007 - 23:27 #17
Ja da :D
Jeg viste kun reply, fordi det jo er den der er aktuel, tråd tabellem er jo ligegyldig.
Avatar billede nielle Nybegynder
22. november 2007 - 06:52 #18
Er topicId feltet en reference til tabellen med spørgsmål?
Avatar billede cortx Nybegynder
22. november 2007 - 12:00 #19
Hvorfor ikke undlade at gemme et specifikt id til hvilken tråd det er, og bare gemme hvilken forumtråd kommentaren er til.
- og så i stedet bare bruge COUNT(*) i kommentardatabasen hvor den er knyttet til den artikel's id, som man kigger på.

Altså COUNT(*) i artikeldatasen hvor artikelid='$artikelid'..
som jeg ser det, er det topicID
Avatar billede cortx Nybegynder
22. november 2007 - 12:00 #20
tror jeg har misforstået :) ikke noget alligevel.
Avatar billede 17196 Nybegynder
22. november 2007 - 13:27 #21
Ja nielle
Avatar billede nielle Nybegynder
22. november 2007 - 17:59 #22
Så er det jo i hvert fald nemt at optælle antallet af svar til et givet spørgsmål uden st skulle lave noget rekursivt.
Avatar billede 17196 Nybegynder
22. november 2007 - 18:32 #23
Ja, men jeg kan jo ikke bruge antallet til noget, med mindre jeg gør som jeg først foreslog. Vi snakker jo om at nummerere svarene.
Avatar billede cortx Nybegynder
23. november 2007 - 12:19 #24
Det er så rigtigt ja.. så ved jeg faktisk ikke .. Hvad med jer nielle og 17196 :)
Avatar billede nielle Nybegynder
26. november 2007 - 17:36 #25
Jeg kan ikke umiddelbart komme med et bedre bud. :^|
Avatar billede 17196 Nybegynder
26. november 2007 - 19:34 #26
Nå, men det er vel heller ikke verdens undergang hvis nogle skulle få samme nummer. Jeg takker fordi du gad kigge på det nielle.
Smid svar
Avatar billede nielle Nybegynder
26. november 2007 - 21:33 #27
Så gerne :^)
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