Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Simpelt nyheds system - speciel-skrevet til begyndere

Forord

En artikel der gennemgår de mest basale ting i et nyhedssystem.

Hej og "velkommen" til min lille artikel om at programmere et meget simpelt nyheds system. Du har sikkert allerede opdaget, at der måske er en artikel, med netop dette emne? Men vi alle laver jo på hver sin måde. Så hvorfor ikke bare begynde?

Vi starter med at sætte vores tabel op! Det gør vi sådan her:

  1. CREATE TABLE `news` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `name` varchar(30) NOT NULL default "",
  4.   `author` varchar(30) NOT NULL default "",
  5.   `date` varchar(30) NOT NULL default "",
  6.   `text` text NOT NULL,
  7.   PRIMARY KEY  (`id`)
  8. ) AUTO_INCREMENT=1 ;

En meget simpel tabel som du burde kunne forstå! Hvis ikke - skal du ikke læse videre, men derimod starte på et lidt "lettere begyndere" niveo.

Lad os gå videre til vores "config.php".

  1. <?php
  2. mysql_connect("localhost", "BRUGERNAVN", "KODEORD") or die(mysql_error()); // Udfylde inputsne med egen data
  3. mysql_select_db("DATABASE") or die(mysql_error()); // Og det samme gør du her
  4. ?>

Den er måske lidt tricky at huske? Men du skal heller ikke bruge den så meget mere end det. Nu skal vi igang med det sjove! Nemlig "vis.nyheder.php".

  1. <?php
  2. // Vi inkluderer vores config fil, som holder forbindelsen til vores database
  3. include ("config.php");

  4. // Hent al data fra tabellen "news" sortér af ID nyest
  5. $loadNews = mysql_query("SELECT * FROM news ORDER BY id DESC") or die(mysql_error());

  6. // Men vi skal da lige tjekke, om der overhovedet er oprettet nogle nyheder i vores databse! Det gør vi med mysql_num_rows();
  7. // Vi tæller simpelthen hvor mange data der er indsat, hvis der er 0 data udskriver vi en meddelse
  8. if(mysql_num_rows($loadNews) == 0) {

  9. echo "Der er ikke blevet tilføjet nogle nyheder.";

  10. // Hvis der er mere end 0 nyheder oprettet et databasen udskriver vi dem alle
  11. } else {

  12. // Ved hjælp af en while() også kaldt "løkke", udskriver vi nyhederne
  13. while($showNews = mysql_fetch_array($loadNews)) {

  14. $nName = stripslashes($showNews["name"]); // Vi opretter en variable for overskriften. stripslashes(); fjerner "/" fra selve overskriften hvis dette skulle være tilfældet
  15. $nAuthor = stripslashes($showNews["author"]); // Vi opretter endnu en variable for forfatteren, og bruger stripslashes();
  16. $nText = nl2br(stripslashes($showNews["text"])); // En til variable! Denne gang for selve nyheden. nl2br(); er en funktion der bruges som linjeskift ved ENTER, istedet for man skal bruge <br /> for hver linjeskift, ret smart ikk"?
  17. $nDate = $showNews["date"]; // Og til sidst en variable for datoen!

  18. echo "<b>".$nName."</b><br />"; // Udskriv overskriften med "fed"
  19. echo "<i>Skrevet af ".$nAuthor.", d. ".$nDate."</i><br />"; // Udskriv forfatter og date med "kursiv"
  20. echo "".$nText.""; // Udskriv selve nyheden
  21. echo "<br /><br />"; // Laver plads til næste nyhed

  22. } // Lukker vores while()

  23. } // Lukker vores if();

  24. // Et link som fører til tilfoj.nyhed.php, hvor der kan oprettes nyheder
  25. echo "<a href=\"tilfoj.nyhed.php\" title=\"Tilføj nyhed\">Tilføj nyhed</a>";
  26. ?>

Puha! En ordentlig omgang, men som du ser har jeg kommenteret hver eneste linje - netop for at hjælpe dig! Vi skal have fat i endnu en krabat, og som sikkert volder problemer for mindre øvede programmører. Ja, lad os gå igang med "tilfoj.nyhed.php".

  1. <?php
  2. // Vi inkluderer vores config fil, som holder forbindelsen til vores database
  3. include ("config.php");

  4. // Vi laver en variable ud af vores "action". Det gør det hele meget lettere
  5. $action = $_GET["action"];

  6. // Hvis "action" er lig med "submitNews", gør vi klar til at indsætte selve nyheden
  7. if($action == "submitNews") {
  8.  
  9. $cName = htmlspecialchars(addslashes($_POST["newsName"])); // Vi opretter en variable for overskriften. htmlspecialchars(); gør så der ikke kan bruges HTML i overskrift. addslashes(); sætter / ved " og ", hvis det er tilfældet
  10. $cAuthor = htmlspecialchars(addslashes($_POST["newsAuthor"])); // Vi gør de samme ved forfatter, ligesom vi gjorde ved overskriften
  11. $cText = htmlspecialchars(addslashes($_POST["newsText"])); // Og endnu en gang ved selve nyheden
  12. $cDate = date("d-m/Y"); // Skaffer den nuværende dato og laver en variable af den

  13. // Her bruger vi empty() til at tjekke om et felt er tomt. Læg mærke til at jeg har sat "!" foran. Så nu er det omvendt! Den spørger: "Hvis overskrift, forfatter og text er udfyldt, så indsætter vi i databasen"
  14. if(!empty($cName) && !empty($cAuthor) && !empty($cText)) {

  15. // Simpel mysql_query(); hvor vi indsætter nyheden i databasen
  16. mysql_query("INSERT INTO news (name, author, date, text)VALUES("".$cName."", "".$cAuthor."", "".$cDate."", "".$cText."")") or die(mysql_error());

  17. // Jubii! Det lykkedes os at oprette en nyhed. Vi udskriver en besked
  18. echo "<span style="color: green; font-weight: bold;">Nyheden "".$cName."" er blevet tilføjet!</span>";

  19. // Hvis overskrift, forfatter og selve nyheden var tomme udskriver vi en meddelse
  20. } else {

  21. echo "Du skal udfylde alle felter!";

  22. } // Lukker vores if();

  23. // Hvis "action" ikke var lig med "submitNews" udskriver vi html-formularen til at oprettelsen af en nyhed
  24. } else {

  25. // Simpel html-formular som jeg ikke vil bruge tid på at forklare

  26. echo "<form action="?action=submitNews" method="POST">";
  27. echo "<b>Overskrift:</b><br />";
  28. echo "<input type="text" name="newsName"><br />";
  29. echo "<b>Forfatter:</b><br />";
  30. echo "<input type="text" name="newsAuthor"><br />";
  31. echo "<b>Overskrift:</b><br />";
  32. echo "<textarea name="newsText" style="width: 400px; height: 120px;"></textarea><br />";
  33. echo "<input type="submit" value="OK">";
  34. echo "</form>";

  35. } // Lukker vores if();
  36. ?>

Det var det!

Jeg har ikke skrevet så meget tekst, uden for selve scriptet, men til gengæld kommenteret en stor del. Håber det har hjulpet dig på vej - en dag kan det være, dig der sidder og hjælper andre nye programmører godt igang.

Tak fordi du læste med!

Edit: Opdaterede en fejl med "==". :)
Sidst redigeret 13:35 29/06/2007 af Rowl
Oprettet af:

PHP

Point modtaget: 0

Rate:
18:37 20/01/2007

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Go artikel
Oprettet af:
  Mail
13:41 22/01/2007
Tak. :)

Ellers andet jeg burde lægge mærke til, eller lignende?
Oprettet af:
  Mail
14:33 22/01/2007
God artikel! :up:
Du er god til at forklare hvad funktionerne kan og hvordan de bruges, så 4/5
Sidst redigeret 14:48 - 22/01/2007
Oprettet af:
  Mail
14:48 22/01/2007
Kiggede den lige hurtigt igennem, og det ser sku okay ud :)
Men mangler der ikke et = tegn her?
  • if(mysql_num_rows($loadNews) = 0) {

Skal det ikke være sådan her?
  • if(mysql_num_rows($loadNews) == 0) {
Oprettet af:
  Mail
15:17 22/01/2007
Rigtig god artikel, du forklare godt hvad funktionerne gør osv. og Spolit, jo der mangler vidst lige et =
Sidst redigeret 21:26 - 22/01/2007
Oprettet af:
  Mail
21:26 22/01/2007
Ja, tak for det.
Tak til jer alle sammen. :)
Oprettet af:
  Mail
16:07 23/01/2007
Fin og godt skrevet, godt forklaret og det hele 5/5
Oprettet af:
  Mail
21:11 23/01/2007
Jo tak.
Oprettet af:
  Mail
13:31 24/01/2007
Bedste begynder artikel nogensinde. :)
Oprettet af:
  Mail
16:48 28/01/2007
Kanon fed artikle! fem her fra :p XD
Oprettet af:
  Mail
22:27 30/01/2007
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes