Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Artikel system


I denne artikel vil jeg lære jer hvordan man laver et lille artikel system,
Systemet burde virke da’ det er testet, men husk den skal ikke bruges som en copy/past kode, jeg vil anbefale jer at læse det hele da selve systemet ikke er så vigtigt men derimod det er det super lærerigt og hvis du kan en smule php i forvejen(behøver ikke være mere end hvordan man laver et php dokument og lidt html) vil du efter denne artikel kunne lave små systemer fx gæstebog forum ovs. Det kræver bare som sagt at du læser det grundigt igennem.
Hvis du ikke ved hvordan man sætter tabeller ind i phpmyadmin, bør du læse denne artikel først:
http://rowl.dk/showarticle.asp?id=111&succes=&page=0
Artiklen er bygget op på jeg fortæller lidt og så skriver jeg koden som indeholder nogle vigtige kommentarer som du bør læse, og så fortæller jeg lidt om koden..

Systemet kræver:
Din host understøtter phpmyadmin,
Du har php 4 eller over, (ved ikke om forrige versioner kan køre det)

Godt så kan vi begynde.
Vi starter med at indsætte vores kode i phpmyadmin(må gerne kopieres)
  1.  CREATE TABLE `artikler` (

  2. `navn` text NOT NULL ,
  3. `artikel` text NOT NULL ,
  4. `date` text NOT NULL ,
  5. `af` text NOT NULL ,
  6. `id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY
  7. )
Som i kan se oprette vi en tabel som heder artikler som indeholder:
Navn - Navn på artiklen
Artikel - Selve artiklen
Dato - Hvilken dato artiklen er skrevet
Af - Hvem der har skrevet artiklen
Id - En funktion der giver hver artikel et nr. hvad man skal bruge nummeret til kommer senere hen i artiklen.
Når det er gjort kan du gå videre.
Hvis du kender en lille smule til php så ved du selvfølgelig at php skal være mellem <? ?> så vi starter med at skrive:
  • <? ?>
i vores dokument, så er vi startet, så kan vi ligeså godt gemme vores dokument vi kalder det ”artikler.php”
Så begynder vi at skrive koden:
  1. <?
  2. include ("config.php");
  3. //Vi henter vores database oplysninger via. include og husker at slutte sætningen med ;
  4. $data = mysql_query("SELECT * from artikler ORDER BY id DESC");
  5. //Så kontakter vi databasen og siger vi vil kun bruge daterene fra tabellen der hedder artikler
  6. while($row=mysql_fetch_array($data)){
  7. //Vi laver et while så vi kan bruge $row["navn"]
  8. //og så neden under lukker vi for php så vi kan få noget html ind
  9. ?>
  10. <h3><a href="laes_artikel.php?laes_artikel=<? print $row["id"]; ?>"><? print $row["navn"]; ?></a></h3>
  11. <?
  12. print substr($row["artikel"], 0, 150);
  13. //vi bider 150 tegn af artiklen og skriver den under artiklen
  14. ?>
  15. <br>
  16. <?
  17. }
  18. //Vi slutter vores While af
  19. ?>
  20.  
Som i kan se skal man starte med at komme i kontakt til databasen, det gør vi med include som ”inkludere” hvis man kan kalde det den side man skriver, Så starter vi vores mysql_query som siger til databasen at det er det felt som hedder artikler i databasen der skal bruges, så kommer vores while ind som gø at vi kan bruge $row[’navn’] til at trække vores artikel ud fra databasen og så lukker vi for vores php for nu kommer der lidt html med i dokumentet nemlig:
  1.  <h3><a href="laes_artikel.php?laes_artikel=<? print $row["id"]; ?>"><? print $row["navn"]; ?></a></h3>
  2. <?
  3. print substr($row["artikel"], 0, 150);
  4. ?>
Vi starter med at laver overskriften det skal være navnet på artiklen, der sætter vi <h3></h3> omkrig så teksten bliver en smule stører Så laver vi linket til den side hvor man ser artiklen og resten af informationerne. Hvorfor linket er som det er, det kommer vi til senere, den næste kode nemlig:
  1.  <?
  2. print substr($row["artikel"], 0, 150);
  3. ?> 
Den gør som der står nemlig tager de første 150 tegn af artiklen så man lige kan se hvad det er for en slags artikel og man lige kan se lidt, ligesom her på rowl… og så er det vigtigt at vi slutter af med <br> for ellers vil den næste artikel der bliver tilføjet blive sat hulter til bulter og så når vi laver <br> så sætter den sig pænt neden under.
Og så slutter vi af med at lukke vore while med <? }?>
Puha, det var en kode, så mangler vi bare de 3 sidste;)

Er vi klar igen? Vi klør på i hvert fald
Så skal vi til den side som man kommer til når man har trykket på overskriften og vil læse artiklen.
Her er koden:
(laes_artikel.php)
  1.  <?php
  2. include ("config.php");
  3. //laver en include til den side hvor vi kontakter databasen
  4. $db_laes_artikel = mysql_query("select * from artikler where id = "$_GET[laes_artikel]"");
  5. //vi siger til databasen at det kun er tabellen artikler vi vil bruge og at siden skal hedde Laes_artikel.php?artikel=og så den id artiklen har
  6. $laes_artikel = mysql_fetch_array($db_laes_artikel);
  7. ?>
  8. <h2><? print $laes_artikel["navn"]; ?></h2>
  9. <br>
  10. <? print $laes_artikel["artikel"]; ?>
  11. <br>
  12. Skrevet Den: <? print $laes_artikel["date"]; ?> Af: <? print $laes_artikel["af"]; ?> 
Vi Starter med at komme i kontakt med databasen, med include,
Så kommer vi til det lidt svære(for mig) Vi skal have siden til at hedde: laes_artikel.php?laes_artikel=1
Det gør man sådan her: (dette stykke kode ligger i filen oven over og skal derfor ikke bruges i andre filer)
  1.  <?php
  2. include ("config.php");
  3. //laver en include til den side hvor vi kontakter databasen
  4. $db_laes_artikel = mysql_query("select * from artikler where id = "$_GET[laes_artikel]"");
  5. //vi siger til databasen at det kun er tabellen artikler vi vil bruge og at siden skal hedde Laes_artikel.php?artikel=1 og så den id artiklen har
  6. $laes_artikel = mysql_fetch_array($db_laes_artikel);
  7. ?> 
Der hvor der står: $_GET[laes_artikel] kan man skifte laes_artikel ud med det man vil have siden til at hedde fx hvis jeg skrev: : $_GET[Hej] Så vil siden komme til at hedde: Laes_artikel.php?hej=1
Og neden under med alt det andet kode henter vi bare vores data med: <? print $laes_artikel["navn"]; ?>
Det er ikke så svært, det kan du godt selv klare uden guide igennem…
Det var så den kode vi går direkte til den næste:)

Hvis man har et artikel system hvor man kan hente sine data ud og lidt til så er det jo fint nok, men ville det ikke være lidt sjovere hvis man havde nogle data’er at tage af? Det syntes jeg i hvert fald;)
Så vi skal selvfølgelig have et sted hvor vi kan tilføje artikler, og det er bare alm. html se her:
(artikel_indsend.php)
  1.  <form action="artikel_indsendt.php" method="POST">
  2. Dit Navn:
  3. <br>
  4. <input type="text" name="af" size="20">
  5. <br>
  6. Navn på artiklen:
  7. <br>
  8. <input type="text" name="navn" size="20">
  9. <br>
  10. Artiklen:<br>
  11. <textarea name="artikel" size="20" rows="22" cols="49"></textarea>
  12. <br><br>
  13. <input type="submit" value="Indsend">
  14. </form> 

Først har vi denne linie:
  •  <form action="artikel_indsendt.php" method="POST">
Den gør at når vi trykker vores submit knap så sender den brugeren og dataerne hen til en anden side hvor de så bliver sat ind i databasen, og resten af html formen burde du kunne men ellers er det indlysende hvad de er til,

Men vi skal da’ også have den side der sætter vores skrevne data ind i databasen, den kommer her:
(artikler_indsendt.php)
  1.  <?php
  2. include ("config.php");
  3. //laver en include til den side hvor vi kontakter databasen
  4. $af = $_REQUEST["af"];
  5. //indeholder det du skrev i "af" på siden artikel_indsend
  6. $navn = $_REQUEST["navn"];
  7. //indeholder det du skrev i "artikel navn" på siden artikel_indsend
  8. $artikel = $_REQUEST["artikel"];
  9. //indeholder det du skrev i "artiklen" på siden artikel_indsend
  10. $date = date("d/m-y H:i");
  11. //finder datoen frem
  12. if($navn){
  13. $query = mysql_query("insert into artikler (af,navn,artikel,date) values ("$af","$navn","$artikel","$date")");
  14. }
  15. //Indsætter alt det der var skrevet ind på de felter man har i artikler
  16. ?>
  17. <? print "Artiklen er nu indsendt!"; ?> 
Vi starter med at kontakte databasen, Så bruger vi
  •  $af = $_REQUEST["af"];
til at hente de oplysninger der blev skrevet i input felterne og det gør vi med alle de felter vi har plus en hvor vi kommer en dato på. Så skal vi til den kode som indsender alle vores data’er til databasen nemlig:
  1.  if($navn){
  2. $query = mysql_query("insert into artikler (af,navn,artikel,date) values ("$af","$navn","$artikel","$date")");
  3. }
Vi skriver de data’er ind vi har oven over og slutter med at skrive den her kode neden under:
  •  <? print "Artiklen er nu indsendt!"; ?>
som skriver at artiklen er indsendt…

Og så skal vi lige huske vores config.php den burde være overskuelig;)
  1. <?
  2. $conn = mysql_connect("localhost","bruger","kode");
  3. //Connecter til mysql
  4. $db = mysql_select_db("bruger",$conn);
  5. ?>

Det var det, så har du et lille artikel system, det kan ikke meget men det virker, og hvis du har forstået noget af det jeg har skrevet så vil du kunne bygge videre på det, og evt. sætte nogle kategorier på;)
Håber du kunne bruge det, :P
Sidst redigeret 20:11 - 25/04/2007
Oprettet af:

PHP

Point modtaget: 0

Rate:
22:33 06/08/2006

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.
slap lige lidt af... Når man indsender så bliver den lagt ind, og er der står det er et lille! artikel system ikke et stort artikel system med admin ;)
Oprettet af:
  Mail
11:08 08/08/2006
Bare fordi der er admin på betyder det jo ik det er stort :S
Oprettet af:
  Mail
16:08 08/08/2006
Du forstår åbenbart ikke hvad det er jeg mener? Det er ikke meningen der skal være noget admin system og hvad skal det også bruges til? der er jo ikke noget at adminstrere
Oprettet af:
  Mail
17:56 08/08/2006
Men om en uges tid går jeg igang med et til downloading som der kan lidt mere ;)
Oprettet af:
  Mail
17:57 08/08/2006
k lyder godt,
Oprettet af:
  Mail
15:15 09/08/2006
Tror godt nok ikke det kan gøre det med en uge men det skal nok komme på et tidspunkt,(fordi jeg har meget travlt)
Oprettet af:
  Mail
21:16 09/08/2006
Nu må jeg lige bryde ind, benyt ret funktionen i stedet for at skrive 2 beskeder i træk...
Oprettet af:
  Mail
14:16 20/08/2006
Ved det men glemmer det somme tider, skal se om jeg kan huske det til næste gang ;)
Oprettet af:
  Mail
15:22 22/08/2006
Fin artikel når man har rettet det med config.php :)

Stor ros her fra.
Oprettet af:
  Mail
18:57 30/08/2006
Fint download ;) .
Oprettet af:
  Mail
17:15 31/08/2006
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes