Jegvil anbefale at du starter med at tage udgangspunkt i et færdigt og ser hvordan det er bygget op. du kan herefter modificerer dette til ukendelighed så det bliver dit helt eget.
Det er måske lettere at bruge et færdiglavet, som http://www.phpbb.com/... så slipper man for arbejdet. Men hvis du selv vil lave det, hjælper det selvfølgelig ikke.
Hvis du selv ønsker at lave et forum, men ikke har forstand på det, vil jeg mene at phpbb er lige en mundfuld for stor at begynde på. Jeg vil anbefale du kigger nærmere på koden til schaefners lille og enkle forum.
Det jeg ønskede var selv at kode et, da jeg helst vil bruge mit eget, men er stadig ny til php/mysql, så vis nogen lige kan fortælle mig hvordan databasen skal bygges op?
Fordi det forum er lavet så det angiver '' som værdi for det felt der er auto-nummerering på. Det er ret beset forkert at gøre (id behøver slet ikke at blive taget med, og der kunne under alle omstændigheder ikke stå den værdi), og det har da også genereret en warning i de fleste MySQL-versioner.
MySQL 5 har dog ændret lidt så den opførsel som standard giver en fejl. For at løse det skal du enten omskrive det hele så INSERT-sætninger ikke tager den værdi med (eller bruger NULL i stedet for ''), eller ændre SQL-serverens opsætning.
Hej skibber. Det du først skal tænke over er hvordan databasen skal opbygges. Først skal du have en tabel til alle emnerne i forumet. Lad os f.eks. kalde den forum_oversigt. Inde i hvert emne skal du så gøre brug af en anden tabel, som vi f.eks. kan kalde forum_emne.
I forum_oversigt ville jeg så have følgende attributter:
Når der så bliver skrevet i en af de emner, vil det blive sat ind her. Dvs. emne_id er det id du får fra forum_oversigt. Så når du trykker på et emne i oversigten vil den selecte på emne_id. På denne måde kan du have alle de emner inde i den tabel. Bruger email og tekst siger vel sig selv.
Du er meget velkommen til at skrive hvis du har yderligere spørgsmål :)
Synes godt om
Slettet bruger
30. juli 2006 - 16:01#10
Hva så vis jeg har lavet et spørgsmål og du så svare, hvor skal det så hen?
Synes godt om
Slettet bruger
30. juli 2006 - 16:18#11
Når, tror lige det er gået op for mig, vis du kommenter mit spørgsmål bliver det skrivet i emne_id?
Synes godt om
Slettet bruger
30. juli 2006 - 16:47#12
Nu har jeg laveten oversigt, men emne_navn skal jo vises som et link ikk?
Hver gang der er en der svare på et emne, vil det blive sat ind i forum_emne tabellen, med samme emne_id som selve emnet, og på denne måde kan du have flere beskeder indenfor hvert emne. Men ja fra oversigten over emner, skal være links som f.eks. forum?emne_id=32 hvor den så henter id 32 ud fra tabellen og viser samtlige posts der.
Synes godt om
Slettet bruger
30. juli 2006 - 17:54#14
Nu er jeg forviret:P
Synes godt om
Slettet bruger
30. juli 2006 - 17:56#15
så vis jeg går ind i et emne med id = 32 og kommentere der så vil det blive gemt i forum_emne og emne_id vil automatisk blive sat til 32?
Synes godt om
Slettet bruger
30. juli 2006 - 17:57#16
og emne_navn er selve spørgsmålet ikk?
Synes godt om
Slettet bruger
30. juli 2006 - 18:24#17
Det driller mig nu... Min oversigt ser såen her ud: <?php include('connect.php'); $hent= mysql_query("SELECT * FROM forum_oversigt WHERE id"); echo"<table border='0' width='37%' id='table1' align='center'>"; echo"<tr>"; echo"<td align='center'>Overskrift</a></td>"; echo"<td align='center'>Bruger</td>"; echo"</tr>"; while($oversigt = mysql_fetch_assoc($hent)) {
og min emne.php (har kun lige lavet så den viser spørgsmålet der, og tror det er den der er noget galt med); <?php include('connect.php'); $hent = mysql_query("SELECT * FROM forum_oversigt WHERE id"); while($vis = mysql_fetch_assoc($hent)) { echo"<h2> $vis[emne_overskrift]</h2>"; echo"<h3> $vis[emne_navn]</h3>"; echo"<p> $vis[emne_tekst]</p>"; } ?> Den ud skriver bare hele tabellen?
Altså SQL ville nok være sådan ca sådan her Oversigten for at få dem alle frem: SELECT id,emne_navn FROM forum_oversigt order by id
når et emne så bliver oprettet: insert into forum_oversigt (emne_navn) values($emnenavn) så henter du det id ud som den fik og derefter: insert into forum_emne (emne_id,bruger,email,tekst) values($emne_id, $bruger, $email, $tekst)
Når der så bliver skrevet i dette emne: Dog inden man inserter her skal vi have emne_id'et ud med f.eks. $_GET['emne_id] så du indsætter det samme. insert into forum_emne (emne_id,bruger,email,tekst)values($emne_id,$bruger,$email,$tekst)
Når du så henter alt info ud fra et emne: Her hiver du også id'et ud via $_GET['emne_id'] SELECT bruger,email,tekst FROM forum_emne WHERE emne_id=$emne_id ORDER by id
pga denne linie: mysql_query("insert into forum_oversigt (id, emne_navn) values('', '$emnenavn')") or die(mysql_error());
der skal du ikke smide noget id med så prøv med
mysql_query("insert into forum_oversigt (emne_navn) values('$emnenavn')") or die(mysql_error());
Synes godt om
Slettet bruger
01. august 2006 - 13:31#26
Det var ikk der for.. har lavet det om og lavet databasen på en anden måde.... .. men hvorfor virker denne kode ikke? <?php include('connect.php'); if($_POST['submit']){ $emnenavn = $_POST['emne_navn']; $bruger = $_POST['bruger']; $email = $_POST['email']; $tekst = $_POST['tekst']; mysql_query("INSERT INTO forum_emne SET (emne_navn, bruger, email, tekst) VALUES ('$emnenavn', '$bruger', '$email', '$tekst')") or die (mysql_error()); exit(); } ?> <html> <head> </head> <body>
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(emne_navn, bruger, email, tekst) VALUES ('sdfsdfs', 'adfsdf', 'dfsdfs', 'dfsdfs' at line 1
Synes godt om
Slettet bruger
02. august 2006 - 13:46#27
Jeg har fået lavet forumet nu, og har givet jer point.. i får alle sammen lidt... Men da det var bentblod der fik mig hjulpet "længst på vej" for han størstedelen!.
Synes godt om
Slettet bruger
02. august 2006 - 13:48#28
bare læg et svar alle sammen,har fundet ud af hva jeg skal gører.
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.