Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > PHP

Skapa ett artikelsystem Del 4.

Hejsan och välkommen till del 4 i skapa ett artikelsystem i php.


Så, nu har ni filerna: visa.php, connect.php och index.php, och databasen uppe såklart. I den här delen ska jag berätta för er hur man sätter in data i tabellen. Det gör man bl.a. med språket SQL (Structured Query Language) tror jag att det är förkortning för. Utan SQL, inget artikelsystem.

Så, då börjar vi

Vi gör en ny fil vi kallar ny.php. I den så börjar vi som vanligt med att inkludera filen connect.php. Exempel:

<?php

include ("connect.php");

?>

Så inkluderar vi våran fil.
Sen gör vi den vanliga HTML koden.


<?php

include ("connect.php");

?>



<html>

<head>

    <title>Skapa en ny artikel</title>

</head>

<body>



</body>

</html>

Så, det där är ny.php filen just nu. Nu ska vi göra ett formulär. Så innanför BODY taggen sätter vi:


<form action="ny.php" method="post">

<div>Artikelns namn:</div>

<div><input type="text" name="Artikel" /></div>

<div>Skribent:</div>

<div><input type="text" name="Skribent" /></div>

<div>Innehåll:</div>

<div><textarea name="Innehall" cols="60" rows="6"></textarea></div>

<div><input type="submit" values="Skapa" name="submit" /></div>

</form>

Det är formuläret. Jag tänker inte gå in på det något (alltså HTML koden). Jo, vi skapade 2 input boxar som heter Artikel och Skribent och en textarea som heter Innehall.

Så, nu har vi ett formulär som går till ny.php Men inget händer?

Nej, vi har inte satt in någon php kod ännu. Just nu borde din ny.php fil se ut såhär:


<?php

include ("connect.php");

?>

Så inkluderar vi våran fil. Sen gör vi den vanliga HTML koden.


<?php

include ("connect.php");

?>



<html>

<head>

    <title>Skapa en ny artikel</title>

</head>

<body>

<form action="ny.php" method="post">

<div>Artikelns namn:</div>

<div><input type="text" name="Artikel" /></div>

<div>Skribent:</div>

<div><input type="text" name="Skribent" /></div>

<div>Innehåll:</div>

<div><textarea name="Innehall" cols="60" rows="6"></textarea></div>

<div><input type="submit" values="Skapa" name="submit" /></div>

</form>

</body>

</html>

Så bra, nu sätter vi:


<?php

function trimma($text) {

$text = str_replace("<", "&lt;", $text); //Tar bort alla < och ersätter med &lt;

$text = str_replace(">"
, "&gt;", $text); //Tar bort alla > och ersätter med &gt;

$text = str_replace('"', "&quot;", $text);

$text = nl2br($text); //Gör så att alla enter-slag blir BR

$text = trim($text); //Trimmar texten, dvs tar bort onödiga mellanslag

//Returnerar den genomgågna texten

return $text;

}



$Artikel = trimma($_POST['Artikel']); //Hämtar artikelns namn från formuläret

$Skribent = trimma($_POST['Skribent']); //Hämtar skribentens namn från formuläret

$Innehall = trimma($_POST['Innehall']); //Hämtar innehållet från artikeln från formuläret

?>

Den koden känner vi igen. Vi använde samma funktion som i Del 3, dvs trimma funktionen. Sen skapade vi tre variabler: Artikel, Skribent och Innehall; de kommer att ta/få innehållet från formuläret.

Nu så ska vi sätta:


<?php

if (isset($_POST['submit'])){

if ($Artikel == false){ //kollar om artikelns namn inte är ifyllt

   echo "Du angav inte namnet på artikeln."; //Om det är det skriv ut det här

} else if($Skribent == false){ //Kollar om skribenten inte fyllt i sitt namn

    echo "Du angav inte vem som skrev artikeln."; //Om inte, skriv ut det här

} else if($Innehall == false){ //Kollar om det är nåt innehåll i artikeln

    echo "Fyll i din artikel."; //Om inte, skriv ut det här

} else { //Om allt stämmer Så kör denna SQL Sats, som sätter in i tabellen

$sql = mysql_query("

INSERT INTO artiklar(Artikel,Skribent,Innehall)

    VALUES(

    '" .$Artikel. "',

    '" .$Skribent. "',

    '" .$Innehall. "'

    )") or die(mysql_error()); //Om det var något fel i sql:en så skriver det ut automatiskt via mysql_error

echo "Din artikel skickades in."; //Allt stämde skriv ut det här

echo "<br /><a href=\"index.php\">Till alla artiklar</a>"; //Och det här

}

}

?>

Det var mycket kod, men det vi gjorde var att vi kollade om submit var satt genom if(isset($_POST['submit'])) och om den var satt skulle den kolla om variablarna var felaktiva dvs inte ifyllda. Sedan om allt stämde ska den köra en SQL sats som sätter in allt i databasen och skriva ut "Din artikel skickades in.", sedan en länk till alla artiklar.

Så här ser filen ut nu:


<?php

include ("connect.php"); //Vi inkluderar våran connect fil

?>

<html>

<head>

    <title>Artikelsystem</title>

</head>

<body>

<form action="ny.php" method="post">

<div>Artikelns namn:</div><div><input type="text" name="Artikel" /></div>

<div>Skribent: </div><div><input type="text" name="Skribent" /></div>

<div>Innehåll: </div><div><textarea name="Innehall" style="width: 400px; height: 400px;"></textarea></div>

<div><input type="submit" name="submit" value="Lägg till artikel" /></div>

</form>

<?php

if (isset($_POST['submit'])){

if ($Artikel == false){ //kollar om artikelns namn inte är ifyllt

   echo "Du angav inte namnet på artikeln."; //Om det är det skriv ut det här

} else if($Skribent == false){ //Kollar om skribenten inte fyllt i sitt namn

    echo "Du angav inte vem som skrev artikeln."; //Om inte, skriv ut det här

} else if($Innehall == false){ //Kollar om det är nåt innehåll i artikeln

    echo "Fyll i din artikel."; //Om inte, skriv ut det här

} else { //Om allt stämmer Så kör denna SQL Sats, som sätter in i tabellen

$sql = mysql_query("

INSERT INTO artiklar(Artikel,Skribent,Innehall)

    VALUES(

    '" .$Artikel. "',

    '" .$Skribent. "',

    '" .$Innehall. "'

    )") or die(mysql_error()); //Om det var något fel i sql:en så skriver det ut automatiskt via mysql_error

echo "Din artikel skickades in."; //Allt stämde skriv ut det här

echo "<br /><a href=\"index.php\">Till alla artiklar</a>"; //Och det här

}

}

?>

</body>

</html>

Så tack för att ni läste den sista delen.
Det kommer kanske komma andra artiklar men inte i artikelsystem.
PS.Skicka PM Till mig om vad ni vill ha för artiklar .DS

Redigerades av: Shadi
Anledning: Strukturerade texten

Skapades: 2008-03-18 23:48:04
Skribent: Pettersoft
Lästs 1323 gånger
Betyg: 4 (artikeln har endast 4 röster, det krävs minst 5 för ett betyg)

Kommentarer

chrillemeter sa den 18 mars 2008 kl 23:52:
Structured Query Language tror jag.
- Stämmer bra det.

Utan sql, inge php.
- vad menar du med det?

php fungerar utan sql, men för att artikelsystemet ska fungera så behövs det sql.

Förövrigt är det en bra artikel.
Pettersoft sa den 19 mars 2008 kl 07:04:
Tackar Ice. Ska ändra.
Visst kan man köra php utan sql men för att skapa sådana här system så behövs sql.
Gimbergsson sa den 19 mars 2008 kl 07:14:
kommentera koden lite mer så att nybörjare har lättare att förstå vad de olika delarna i koden gör.
Pettersoft sa den 19 mars 2008 kl 07:19:
Hmm, Okej. Ska redigera.
Hultin sa den 19 mars 2008 kl 08:06:
Måste bara påpeka att jag tycker artiklarna är toppen. Iof är jag helt ny på php och har inga direkta ambitioner utan är fast i asp träsket..
DOCK, skulle jag vilja se lite mer strukturerad kod lite extra enter gör inte något
Pettersoft sa den 19 mars 2008 kl 13:56:
Tack Fwaky! Jag ska försöka ändra.
HeadShot sa den 22 mars 2008 kl 17:45:
Du e ju hur bra som helst på o skriva artiklar =) ..Och hur snabbt du har lärt dig php..men gör några *// komenntarer på vissa ställen så man förstår koden ;) För jag e nybörjare inom php, o du verkar kunna det du gör! =)
Pettersoft sa den 25 mars 2008 kl 15:48:
Tackar HeadShot.
Macke sa den 15 november 2008 kl 03:36:
Lite nyfiken bara! Av vilken anledning så skapar du massor av divs så här ?
<div>Artikelns namn:</div>
<div><input type="text" name="Artikel" /></div>
<div>Skribent:</div>
<div><input type="text" name="Skribent" /></div>
<div>Innehåll:</div>
<div><textarea name="Innehall" cols="60" rows="6"></textarea></div>
<div><input type="submit" values="Skapa" name="submit" /></div>

Då du inte har någon class/id/style på den så blir jag lite fundersam.
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy