I denne artikel vil jeg forklare hvordan du laver din egen simple gæstebog. Det er vigtigt at du har lidt kendskab til MySQL før du går igang.
Vi skal starte med at lave nogle filer. Vi skal have tabel-strukturen til MySQL databasen, en side hvor vi viser indlæg og en side hvor vi skriver indlæg. Altså ialt 3 filer. Og hold så godt fast. Nu skal vi lave filerne.
Vi starter med at lave sql-filen. Den skal se således ud:
CREATE TABLE gbog(
id int(4) primary key not null auto_increment,
navn varchar(50),
emne varchar(50),
mail varhcar(50),
post text,
dato date
);
skriv.php er en ganske almindelig fil med en formular, hvor man skriver indlægget. Det skal se således ud:
<form action="gem.php" method="post"><br>
<input type="text" name="navn" value="navn"><br>
<input type="text" name="emne" value="emne"><br>
<input type="text" name="mail" value="mail"><br>
<input type="text" name="post" value="post"><br>
<input type="submit" value="Post indlæg">
<input type="reset" value="Slet felter">
</form>
<?
mysql_connect ("HOST","USER","PASSWORD");
mysql_select_db ("DIN DATABASE");
mysql_query ("INSERT INTO gbog (id,navn,emne,mail,post)
VALUES ('','$navn','$emne','$mail','$post');
?>
Ja, Det første med formularen er jo let nok. Nu kommer vi til det svære, nemlig MySQL-kommandoerne. Vi starter vores php. Derefter connect'er vi til databasen med
mysql_connect. Derefter vælger vi vores database med kommandoen
mysql_select db Så bruger vi endnu en query for at få vores data smidt i tabellen. Vi starter med
INSERT INTO gbog som indsætter data i tabellen gbog, vi oprettede tidligere. Så angiver vi hvilke kolonner der skal smides ind. Der er
id, navn, emne, mail, post som står mellem de to paranteser. Så skal vi lige skrive hvilket data der skal smides i tabellen. Der gør vi ved at angive nogle variabler. Det er
$navn, $emne $mail og $post som man skrev dem i formularen. Id indsætter MySQL selv. Og så slutter vi lige php. Let ik???
Nu skal vi have oprettet en side hvor indlæggene kan læses. Den kalder vi for vis.php. Den skal se således ud:
<?
mysql_connect ("HOST","USER","PASSWORD");
mysql_select_db ("DIN DATABASE");
$foresp = mysql_query("SELECT * FROM gbog");
while($row = mysql_fetch_array($foresp)) {
echo $row[navn];
echo "<br>";
echo $row[mail];
echo "<br>";
echo $row[emne];
echo "<br>";
echo $row[post];
}
?>
Ja. Vi starter med at connect'e og vælge database som vi gjorde i skriv.php. Når vi skriver
$foresp = mysql_query("SELECT * FROM gbog"); angiver vi hvad der sker når man kører variablen
$foresp. Og der sker det at den vælger alle data fra tabellen gbog. Men det er ikke nok at vælge data'ene. Vi skal også have skrevet dem ud. Det gør vi med
while($row = mysql_fetch_array($foresp)) {
echo $row[data];
} Data skal erstattes med den kolonne man vil have printet ud. F.eks. Navn. Hvis man vil have flere data ud kører man bare
echo $row[data]; igen, og erstatter data med den næste kolonne. Sværere er det ikke.
Hvis du har spørgsmål, så stil dem i forummet...
Kommentarer (22)
Weeeeeeeeeeeeeeeeeeeee
er mysql n00b og lærte noget her
Der mangler en smule for at man kan få den til at virke. Der bliver henvist til gem.php i artiklen og der er ikke nævnt nogen steder hvad man skal putte i den.
I filen skriv.php putter du den indtastede data ind i databasen, skulle den del ikke have været seperat og hedde gem.php
Okay artikel men lidt farligt at du ikke har sat eks. stripslashes() ind får hvis man er PHP/MySQL n00b og kaster sig sorgsløst ud på nettet med den der og der så kommer en gammel skrunken ond hacker kan han jo nemt pille lidt ved det hele ikke
? Ellers flot men lidt kedelig
Bygger artiklen ikke på rimelig basale ting indenfor php og mysql? Du kunne i det mindste have brugt lidt mere tid på sikkerhed og andre features.
hmmm. burde <form action="gem.php" method="post"> den ikke referer til sigselv
Hej,
fin artikel men
mail varhcar(50), << char skal der stå
, bare en lille tastefejl men nok til at komme med en fejl....
ellers ret godt...
Hvor skal sql-filen skrives henne??? Er lidt bare noob!! Men plz hjælp....! Og de andre skrives bare editoren, right?????
I skriv.php mangler der et " efter '$post'
jeres mysql virker ikke
ellers tror jeg den er god
Er der nogle som kan hjælpe mig? - jeg får denne fejl:
Parse error: parse error, unexpected $ in /hotel/justkidding/WWW/PHP/guest/gem.php on line 9
nice
hallo hva sker der den der sql fil virker jo ik man!!! og det gør skriv heller ik !!
det er fordi han har lavet en stavefejl i linje 5
Det er en MEGET simpel gæstebog, og er egentlig mest bare copy paste. Jeg synes godt der kunne have været en smugle omkring, hvordan man kunne have været gået ind at designe gæstebogen. Og så er der jo lige den lille fejl med gem.php.
Men den er god til nybegyndere, lige til at gå til, copy / paste, men ikke noget man lære det store af. (Ihvertfald ikke mig :o))
får den her besked når jeg trykker post indlæg: Parse error: syntax error, unexpected $end in /web/www/frac/users/cssprays/gem.php on line 9
Jeg har gjort følgende: fulgt artiklen, taget phpkoden fra skriv.php og lavet en ny, som hedder gem.php og sat det derind i. Så har jeg udfyldt det hele og uploadet det hvad går der galt?
Fejl på siden.
Koden lyder sådan her:
CREATE TABLE gbog(
id int(4) primary key not null auto_increment,
navn varchar(50),
emne varchar(50),
mail varhcar(50),
post text,
dato date
);
den skal hedde dette:
CREATE TABLE gbog(
id int(4) primary key not null auto_increment,
navn varchar(50),
emne varchar(50),
mail varchar(50),
post text,
dato date
);
Fejlen:
forfatteren fik skrevet "varhcar" og ikke "varchar" på "mail varchar"
Mvh. Andi.
hmm, hvor bliver gem.php egentligt af? =/
N00b til php
Ja.. Hvor er gem.php?
Du bruger slet ikke date til noget?
Skriv.php<form action="gem.php" method="post"><br>
<input type="text" name="navn" value="navn"><br>
<input type="text" name="emne" value="emne"><br>
<input type="text" name="mail" value="mail"><br>
<input type="text" name="post" value="post"><br>
<input type="submit" value="Post indlæg">
<input type="reset" value="Slet felter">
</form>
Gem.php<?
mysql_connect ("HOST","USER","PASSWORD");
mysql_select_db ("DIN DATABASE");
mysql_query ("INSERT INTO gbog (id,navn,emne,mail,post)
VALUES ('','$navn','$emne','$mail','$post');
?>
Ved dog ikke om det virker tog det bare lige hurtigt
Ved godt det er ved at være en gammel artikel, men da den dukkede op på google, så synes jeg alligevel lige jeg vil komme med en kommentar. Jeg skal ikke spille smart fordi jeg selv er en noob på området, men skal der ikke oprettes nogen variabler som skal indeholde Http variablerne?
Gem.php
<?
mysql_connect ("HOST","USER","PASSWORD");
mysql_select_db ("DIN DATABASE");
$navn = $_POST["navn"];
$emne = $_POST["emne"];
$mail = $_POST["mail"];
$post = $_POST["post"];
mysql_query ("INSERT INTO gbog (id,navn,emne,mail,post)
VALUES ('','$navn','$emne','$mail','$post');
?>
Jeg for bare en blank side når jeg trykker post indlæg :s
Du skal være
logget ind for at skrive en kommentar.