Skapa en MySql-databas och en tabell
Innan vi sätter igång och börjar skapa vår gästbokssida och skriva PHP-kod, så måste vi skapa en databas och en tabell där all data ska sparas och läsas ifrån. Om du har följt den guiden från början och installerat en webbserver på din egna dator, så ska du göra detta från http://localhost/phpmyadmin. Om du har ett webbhotell, så får du använda deras system för att skapa databasen.
Från phpMyAdmin väljer du fliken ”Databaser” och under ”Skapa databas” anger du ”lokaldb” som namn för databasen och i comboboxen ”Kollationering” väljer du ”utf8_swedish_ci”. Observera att det finns flera olika versioner av ”utf”, så kontrollera att det är ”utf8” du väljer.
Klicka därefter på ”Skapa”, så skapas en tom databas med namnet ”lokaldb”.
Om inget fel uppstod, så ska din nyskapade databas finnas med i listan ovan och du ska klicka på ”lokaldb”.
Nu är det dags att skapa tabellen där all data ska sparas och vi döper den till ”tblKatalog”. Av olika anledningar inleder jag alla mina tabellnamn med ”tbl” som är en förkortning för ”tabell” eller ”table”.
För vår gästbok behöver vi bara 3 kolumnter, så ange ”3” i fältet för kolumner och klicka därefter på ”Kör”, så kommer tabellen skapas.
Nu ska du skapa kolumnerna i tabellen och här är det lite mer som ska göras. Klicka på bilden ovan för att förstora den.
Första kolumnen ska heta ”uid” och längst bort till höger ska du välja PRIMARY under Index och sedan kryssa i boxen under A I som stor för ”Auto Increment”.
Andra kolumnen ska heta ”namn” och under typ väljer du ”VARCHAR”. Längd/Värden anger du till ”50”.
Tredje och sista kolumnen ska heta ”meddelande” och vara av typen ”TEXT”.
Innan du klickar på ”Spara” ska du ange kollationeringen och även här väljer du ”utf8_swedish_ci”. Sedan är det bara att klicka på ”Spara”, så skapas kolumnerna.
Förklaring till ovanstående steg
Det finns mycket att säga om stegen ovan, men det blir lätt invecklat och jag vill försöka hålla den här kursen relativt enkel och lättförståelig eftersom den riktar sig till nybörjare, men lite förklaringar är ändå på sin plats.
I första stegen angav vi namnet ”lokaldb” för vår nya databas och valde kollationeringstypen ”utf8_swedish_ci”. Namnet på databasen kan vara i princip vad som helst, men som vanligt i samband med datorer och speciellt när det gäller Internet, så bör du undvika svenska tecken, mellanslag och andra konstiga tecken. Stora och små bokstäver är okej, men ha i åtanke att många system är skiftlägeskänsliga vilket innebär att det är skillnad på ”Lokaldb” och ”lokaldb”, vilket kan orsaka svårfunna fel.
Detsamma gäller för tabellen ”tblGuestbook” som vi skapade. Där inleds namnet med gemener, följt av en inledande versal och därefter åter gemener. Det är ett medvetet val från min sida och tanker är att det ska vara lättare att urskilja namnet bland raderna av andra tabeller.
Kollationeringen innebär att vi talar om för MySql att databasen/tabellen ska innehålla svenska tecken. Det här är något som jag haft ganska mycket problem med genom åren när jag utvecklat i PHP, men aldrig under åren som jag satt i Microsoftmiljö och programmerade.
Genom att ange kollationeringen till UTF-8 svenska, så minskar vi risken för att de svenska tecknen ska anges som konstiga tecken, men för att ytterligare säkerställa att tecknen skrivs ut korrekt kommer vi tala om att vi vill använda UTF-8 även när vi ansluter till vår MySql-databas i PHP-koden.
I tabellen vi skapade lade vi till tre kolumner. Den första kolumnen, ”uid”, som är min förkortning för ”Unikt ID”, angav vi som primärnyckel för tabellen och med funktionen Auto Increment, vilket betyder att värdet ökas automatiskt för varje ny rad som skapas i tabellen.
När vi längre fram kommer spara inlägg i vår gästbok, så sparas dessa i tabellen ”tblGuestbook” och varje inlägg i gästboken skapar en ny post, eller rad, i tabellen.
Den första posten som skapas får ett ”uid” med värdet 1 och nästa får värde 2 osv. Även om du raderar en post med ”uid” X, så kommer inte nästa inlägg att få detta raderade värde utan nästa post får det högsta värdet som skapats plus ett.
Kolumnen ”namn” kommer innehålla namnet på personen som skrivit ett gästboksinlägg och vi valde typen VARCHAR. VARCHAR sparar textsträngar och man måste ange längd på fältet, vilket är det maximala antalet tecken kolumnen kan innehålla. Vi valde 50, vilket borde räcka mer än väl för ett namn och maxvärdet är 255 tecken (om jag inte missminner mig).
Kolumnen ”meddelande” vill vi ska kunna innehålla längre texter och därför valde vi typen TEXT som även den sparar värdet som en textsträng.
När man sparar något som en textsträng, så kommer datorn behandla det som ren text, oavsett om det är värdet ”1234” eller ”hej världen” som sparats. För oss är ”1234” siffror, men om vi sparat det som en textsträng, så är det text för datorn och det går alltså inte att be datorn addera två textsträngar med värdena ”1” och ”1” och få ”2” utan det blir ”11”, om inte funktionen returnerar ett rent felmeddelande (beroende på vilket språk man skriver i).