Simpelt nyheds system - speciel-skrevet til begyndere
ForordEn 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:
CREATE TABLE `news` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(30) NOT NULL default "",
`author` varchar(30) NOT NULL default "",
`date` varchar(30) NOT NULL default "",
`text` text NOT NULL,
PRIMARY KEY (`id`)
) 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".
<?php
mysql_connect("localhost", "BRUGERNAVN", "KODEORD") or die(mysql_error()); // Udfylde inputsne med egen data
mysql_select_db("DATABASE") or die(mysql_error()); // Og det samme gør du her
?>
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".
<?php
// Vi inkluderer vores config fil, som holder forbindelsen til vores database
include ("config.php");
// Hent al data fra tabellen "news" sortér af ID nyest
$loadNews = mysql_query("SELECT * FROM news ORDER BY id DESC") or die(mysql_error());
// Men vi skal da lige tjekke, om der overhovedet er oprettet nogle nyheder i vores databse! Det gør vi med mysql_num_rows();
// Vi tæller simpelthen hvor mange data der er indsat, hvis der er 0 data udskriver vi en meddelse
if(mysql_num_rows($loadNews) == 0) {
echo "Der er ikke blevet tilføjet nogle nyheder.";
// Hvis der er mere end 0 nyheder oprettet et databasen udskriver vi dem alle
} else {
// Ved hjælp af en while() også kaldt "løkke", udskriver vi nyhederne
while($showNews = mysql_fetch_array($loadNews)) {
$nName = stripslashes($showNews["name"]); // Vi opretter en variable for overskriften. stripslashes(); fjerner "/" fra selve overskriften hvis dette skulle være tilfældet
$nAuthor = stripslashes($showNews["author"]); // Vi opretter endnu en variable for forfatteren, og bruger stripslashes();
$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"?
$nDate = $showNews["date"]; // Og til sidst en variable for datoen!
echo "<b>".$nName."</b><br />"; // Udskriv overskriften med "fed"
echo "<i>Skrevet af ".$nAuthor.", d. ".$nDate."</i><br />"; // Udskriv forfatter og date med "kursiv"
echo "".$nText.""; // Udskriv selve nyheden
echo "<br /><br />"; // Laver plads til næste nyhed
} // Lukker vores while()
} // Lukker vores if();
// Et link som fører til tilfoj.nyhed.php, hvor der kan oprettes nyheder
echo "<a href=\"tilfoj.nyhed.php\" title=\"Tilføj nyhed\">Tilføj nyhed</a>";
?>
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".
<?php
// Vi inkluderer vores config fil, som holder forbindelsen til vores database
include ("config.php");
// Vi laver en variable ud af vores "action". Det gør det hele meget lettere
$action = $_GET["action"];
// Hvis "action" er lig med "submitNews", gør vi klar til at indsætte selve nyheden
if($action == "submitNews") {
$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
$cAuthor = htmlspecialchars(addslashes($_POST["newsAuthor"])); // Vi gør de samme ved forfatter, ligesom vi gjorde ved overskriften
$cText = htmlspecialchars(addslashes($_POST["newsText"])); // Og endnu en gang ved selve nyheden
$cDate = date("d-m/Y"); // Skaffer den nuværende dato og laver en variable af den
// 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"
if(!empty($cName) && !empty($cAuthor) && !empty($cText)) {
// Simpel mysql_query(); hvor vi indsætter nyheden i databasen
mysql_query("INSERT INTO news (name, author, date, text)VALUES("".$cName."", "".$cAuthor."", "".$cDate."", "".$cText."")") or die(mysql_error());
// Jubii! Det lykkedes os at oprette en nyhed. Vi udskriver en besked
echo "<span style="color: green; font-weight: bold;">Nyheden "".$cName."" er blevet tilføjet!</span>";
// Hvis overskrift, forfatter og selve nyheden var tomme udskriver vi en meddelse
} else {
echo "Du skal udfylde alle felter!";
} // Lukker vores if();
// Hvis "action" ikke var lig med "submitNews" udskriver vi html-formularen til at oprettelsen af en nyhed
} else {
// Simpel html-formular som jeg ikke vil bruge tid på at forklare
echo "<form action="?action=submitNews" method="POST">";
echo "<b>Overskrift:</b><br />";
echo "<input type="text" name="newsName"><br />";
echo "<b>Forfatter:</b><br />";
echo "<input type="text" name="newsAuthor"><br />";
echo "<b>Overskrift:</b><br />";
echo "<textarea name="newsText" style="width: 400px; height: 120px;"></textarea><br />";
echo "<input type="submit" value="OK">";
echo "</form>";
} // Lukker vores if();
?>
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:
Ukendt bruger
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:
Ukendt bruger
13:41 22/01/2007
|
Tak. :)
Ellers andet jeg burde lægge mærke til, eller lignende? |
Oprettet af:
Ukendt bruger
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 |
14:48 22/01/2007
|
Kiggede den lige hurtigt igennem, og det ser sku okay ud :)
Men mangler der ikke et = tegn her?
Skal det ikke være sådan her?
|
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:
Ukendt bruger
21:26 22/01/2007
|
Ja, tak for det.
Tak til jer alle sammen. :) |
Oprettet af:
Ukendt bruger
16:07 23/01/2007
|
|
Fin og godt skrevet, godt forklaret og det hele 5/5 |
21:11 23/01/2007
|
|
Jo tak. |
Oprettet af:
Ukendt bruger
13:31 24/01/2007
|
|
Bedste begynder artikel nogensinde. :) |
16:48 28/01/2007
|
|
Kanon fed artikle! fem her fra :p XD |
22:27 30/01/2007
|
Du skal være oprettet og logget ind for at kommentere en artikel
|