30 april 2007

Databaskoppling med PHP och SQL

Nu är jag i stora drag klar med det mest nödvändiga på Mössebergsfestivalens, IFK Falköpings och Bänkvärmarnas hemsidor. Därför har jag tid att skriva lite här igen. Kärnan i jobbet jag gjort är databaskopplingen. Att kunna lagra data i tabeller är betydligt bättre när man vill skilja på information och layout. Istället för att manuellt skriva in text i HTML-kod hämtar man automatiskt texten från databasen. På detta sätt försvinner behovet av att skapa en HTML-sida för varje nyhet. Istället räcker det med en nyhetssida som via Get-argumentet (en variabel som står efter frågetecknet i URL:en), hämtar korrekt nyhet. T.ex http://ifkfalkopingff.se/collage/show_image.asp?imageID=13 där variabeln heter imageID och har värdet 13. När länken öppnas bilden som i databasen har värdet 13 som ImageID.

Sidorna som fungerar på det här sättet kan inte ha filändelsen .html, utan måste vara innehålla webbdesignspråk så som asp eller php. Jag föredrar att arbeta i PHP och kommer därför skriva kodexempel i det språket på min blogg. Men det är inte så svårt att översätta mellan språken då man väl lärt sig semantiken. Själva databaskopplingen på webbsidan ser i PHP ut såhär :

$db_link = mysql_connect("hostnamn", "användarnamn" , "lösenord");
mysql_select_db("databasnamn", $db_link);
$query = "SELECT * FROM tabellnamn";
mysql_query($query, $db_link);

Uppgifterna hostnamn, användarnamn och lösenord finns på webbservern. Jag rekommenderar awardspace.com om ni vill ha en gratis värd som stödjer PHP och tillhandahåller en databas. Där kan du också skapa tabeller, även om det går att göra i PHP-kod också. Nu är du ansluten till databasen och har ställt en fråga. Sedan krävs ytterligare några rader kod för att skriva ut eller hämta information från databasen.

$data = mysql_fetch_array($result);
$variabel = $data["attributnamn"];
echo $variabel;

Vad koden gör är att den loggar först in på databasen, sedan ställer den en fråga, i språket SQL. mysql_fetch_array är en inbyggd funktion i PHP som hämtar data från databasen.

Det här är grunden för en databaskoppling. Google ställer svar på de flesta övriga frågor. I nästa blogg tänkte jag skriva mer ingående om några specialfunktioner jag använt mig av.

Inga kommentarer:

Skicka en kommentar