Avatar billede inteeeL Nybegynder
14. april 2011 - 17:59 Der er 19 kommentarer og
1 løsning

Kommentarsystem (m. besvarknap)

Hej eksperter..

Jeg er i gang med at lave et kommentarsystem, hvor det skal være muligt at kommentere hinanden.

SQL:

CREATE TABLE IF NOT EXISTS `newscomments` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `newsID` int(11) NOT NULL,
  `userID` int(11) NOT NULL,
  `replyto` varchar(255) NOT NULL,
  `text` longtext NOT NULL,
  `DBdate` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;

Jeg kan bare ikke lige helt finde ud af, hvordan jeg skal få det kodet så effektivt som muligt. Skal jeg til at rode en masse løkker ind, eller sætter en eller form for indrykninsniveau i tabellen? Lige nu har jeg kun attributten "replyto".

Kommentarerne bliver forbundet i form af streger, I kan se det her: http://www.praxicweb.dk/news_test.php
- Det er kun en opstilling, altså endnu ikke kodet.

Nogen forslag?
Avatar billede repox Seniormester
14. april 2011 - 18:08 #1
Har du noget kode man kan kommentere, så? Eller er det fordi du gerne vil vide hvordan vi ville kode det?
Avatar billede inteeeL Nybegynder
14. april 2011 - 18:10 #2
Det er for at høre, hvordan I ville kode det.
Avatar billede morten12345678 Nybegynder
14. april 2011 - 21:30 #3
hehe.. .det fylde rnok lidt for meget til nogle gider skrive det her.

Mit system fylder en 3 - 4 php filer
Avatar billede inteeeL Nybegynder
14. april 2011 - 21:37 #4
Det er ikke nødvendigvis en konkret kode, jeg er ude efter, men mere en lille forklaring. Hvad skal jeg tager udgangspunkt i?
Avatar billede repox Seniormester
14. april 2011 - 23:49 #5
Jamen, nested objects ville være en fordel at kigge lidt på - måske du også skulle overveje hvor dybt nesting du vil tillade? På et tidspunkt vil kommentarboksene vel være meningsløst smalle?

Men er der ellers noget i vejen med en trådet kommentering? Hvad er behovet?
Avatar billede inteeeL Nybegynder
15. april 2011 - 00:08 #6
Der skal naturligvis tages forbehold for et maks antal indrykninger. Men hvorfor lige nested objects?

Egentlig er behovet ikke så stort, men det er noget, jeg gerne vil have med i bagagen. Det er udfordringen, der er fristende.
Avatar billede repox Seniormester
15. april 2011 - 11:02 #7
Fordi nested objects for mig ser ud som den rigtig måde at bygge det kommentartræ op i.
Avatar billede inteeeL Nybegynder
17. april 2011 - 03:46 #8
Jeg har fundet ud af noget..
Avatar billede repox Seniormester
17. april 2011 - 10:32 #9
Jamen, det var da så lidt - skulle det være en anden gang, så regn ikke med noget...
Avatar billede inteeeL Nybegynder
23. april 2011 - 19:04 #10
Jeg synes ikke at begrebet eller svaret "nested objects" fik mig længere ind på sporet, så derfor fandt jeg ikke dit svar særligt løsende. Det skulle jeg måske også have skrevet fremfor at lyde arrogant. At du så tager det personligt er en anden ting - jeg giver dig gerne 100 points, hvis det skal gøre, at du en anden gang gerne hjælper. Men tak for svaret.
Avatar billede repox Seniormester
23. april 2011 - 19:53 #11
Der findes et utal af måder at have beskrevet netop hvad du lige har skrevet; bare at affærdige det på den måde som du gjorde viser en adfærd som desværre er alt for tiltagende her på eksperten.dk af en samling forkælede og utaknemmelige brugere.

Hvis du var i tvivl om noget, kunne du have spurgt. Kunne du ikke bruge forslaget, kunne du bare have sagt det.

Jeg er ligeglad med pointene - men almindelig netikette havde da været rart.
Avatar billede inteeeL Nybegynder
23. april 2011 - 21:53 #12
Jeg citerer fra "morten12345678":
hehe.. .det fylde rnok lidt for meget til nogle gider skrive det her.
Mit system fylder en 3 - 4 php filer
.

Da du efterfølgende supplerer med "nested objects", tænker jeg, at jeg ikke kan komme videre her. Du har selvfølgelig helt og aldeles ret i, at spørgsmålet kan blive fortolket på utallige måder, så det er nok mig, der ikke har fået formuleret mig præcist nok. Jeg ledte mere efter konkrete løsninger - rekursive funktioner ville være meget relevant at snakke om, fandt jeg ud af. Da jeg er ny her på eksperten, er jeg ikke "inde" nok i dette system til at vide, hvor meget man kan tillade sig at spørge ind til. Men det fik du lige understreget.

Jeg vil endelig ikke høre under de brugere, som man benævner for værende forkælede og utaknemmelige; ser du på mine andre tråde, vil du se min pointe.

Men ja, en almindelig netikette skulle selvfølgelig have været med, jeg undskylder. Det gik lidt for stærkt, og jeg vil gerne sige tak for svaret. Håber ikke du fordømmer mig af den grund. ;-)
Avatar billede repox Seniormester
24. april 2011 - 15:45 #13
Jeg ved ikke hvad hans 3-4 filer indeholder - ej heller hvor mange linier der skal til, før han mener det ikke kan betale sig at skrive koden.

Under alle omstændigheder har vi hver især vores egen måde at løse opgaverne på. For mig handler det om 20 liniers kode for en 'nested objects' model, som er fleksibel nok til hvad man nu skulle bruge det til.

Samtidig, skal det også pointeres at man selvfølgelig har ret til at være ny og uerfaren, så du er selvfølgelig ikke 'dømt ude' - min lettere harske måde at udtrykke mig på skyldes - som før nævnt - udelukkende den tiltagende strøm af brugere som er ligeglade med alt og alle.
Avatar billede inteeeL Nybegynder
26. april 2011 - 21:50 #14
Jeg må ærligt indrømme, at jeg ikke er kommet meget længere, så jeg fortryder, at jeg lukkede denne tråd. Jeg valgte at undgå nested objects i første omgang, da jeg ikke er så meget inde i det, men det kunne være, at det var det, skal skulle se nærmere på.

Kan du fortælle lidt mere overordnet (hvis jeg kan tillade mig at stille et spørgsmål, selvom tråden er lukket), hvordan jeg bør bygge sådan en nested objects model op? Hvis det kun handler om 20 linjer, kunne det måske være effektivt nok.

Samtidig, skal det også pointeres at man selvfølgelig har ret til at være ny og uerfaren, så du er selvfølgelig ikke 'dømt ude' - min lettere harske måde at udtrykke mig på skyldes - som før nævnt - udelukkende den tiltagende strøm af brugere som er ligeglade med alt og alle.

Ovenstående er helt forståeligt.
Avatar billede repox Seniormester
27. april 2011 - 09:44 #15
Kunne jeg se noget eksempel på database input? For jeg forstår ikke helt din tabel.
Avatar billede inteeeL Nybegynder
27. april 2011 - 19:08 #16
Det er måske lidt nemmere at vise: http://www.praxicweb.dk/news_test.php - jeg har sat informationerne som besked.

// ID er naturligvis kommentarens id.
// NewsID er det nyheds-id, kommentaren er relateret til.
// userID er forfatteren.
// replyto er den kommentars id, der bliver besvaret på.
- resten er irrelevant.
Avatar billede repox Seniormester
28. april 2011 - 10:25 #17
Så, nu skal du bare se - det kan godt være det virker en smule uoverskueligt, men nede i HTML'en håber jeg at jeg kan få dig til at se, hvad det er du vinder ved det.

Kig på kildekoden her: http://pastebin.com/mcB0MCFn
Og det virkende eksempel kan ses her: http://err0r.dk/test/comments.php

Jeg beklager jeg ikke lige brugte din HTML, men jeg kunne altså ikke helt gennemskue det.

Selve objektet og locateObject funktionen kan du lægge sammen i samme fil. Uden mine kommentarer er det jo bare 30 liniers kode...

Selve udtrækket af kommentarene og visning af dem, bestemmer du jo helt selv hvordan du vil udføre - men i mit eksempel med udtrækket kan du se hvordan jeg laver det nested object tree med dine kommentarer. Og slutteligt kan du se hvordan jeg outputter kommentarerne med en rekursiv funktion.

Du må endelig spørge hvis du har spørgsmål.
Avatar billede inteeeL Nybegynder
28. april 2011 - 17:12 #18
Først vil jeg lige sige mange tak for svar, Repox. Når jeg ser eksemplet på din side, kan jeg se, det virker som en charme. Og ovenpå den så velfunderet og "magiske" kode, som du kaldte det, der ligger bag det, bliver det ikke meget bedre - tak. ;-)

Jeg bruger selv mysqli, men ikke de nye statements, så jeg er ikke helt inde det med de statements. Dog er de til at forstå efter at have taget et kig på php.net. Så det er ikke der, de 117 forskellige spørgsmål vil komme. Jeg vil vente lidt med spørgsmålene.

Jeg har prøvet at sætte det op på min hjemmeside. Jeg får denne fejl:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4294967296 bytes) in /usr/home/web/web409622/praxicweb.dk/test.php on line 61

Efter lidt søgen på google kom jeg frem til dette:
    ini_set("memory_limit","12M");
Ovenstående løste dog ikke problemet, så jeg ved ikke, hvad det kan være.

Det er helt i orden, du ikke brugte min HTML - der vores fejl på i den, på det tidspunkt. Du kan se den rigtige opstilling nu (det er kun html): http://www.praxicweb.dk/news_test.php
- Det skulle være til at forstå nu. :-)
Avatar billede repox Seniormester
29. april 2011 - 09:17 #19
Det undrer mig noget at du har et hukommelsesproblem? Hvad er der i test.php på linie 61?
Avatar billede inteeeL Nybegynder
29. april 2011 - 21:03 #20
Også mig, jeg har følgende på linje 61:

$stmt->bind_result($id, $userID, $replyto, $text, $DBdate);
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

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