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.
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.
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("<", "<", $text); //Tar bort alla < och ersätter med <
$text = str_replace(">", ">", $text); //Tar bort alla > och ersätter med >
$text = str_replace('"', """, $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)