HomeHome   FAQFAQ   SearchSearch   RegisterRegister   Log inLog in 
MySQL databaser med PHP

 
Post new topic   Reply to topic    Swedish Maffia Forum Index -> Guides
View previous topic :: View next topic  
Author Message
pihl
Senior Admin


Joined: 26 Oct 2002
Posts: 1651
Location: root

PostPosted: Sun Feb 05, 2006 11:49 am    Post subject: MySQL databaser med PHP Reply with quote

Databas med MySQL och PHP!
Del 1
MySQL är ett Databas hanterings system som man kan spara information i som man sedan kan komma åt mha. i detta fallet PHP.
MySQL är ett svenskt företag och det står för "My Structured Query Language".


Först har man en databas, som t.ex. heter "min sida", sen i databasen har man tabeller, t.ex. "nyheter" "användare" och lite mer specifika saker. När man ska skapa en tabell i phpMyAdmin så letar man upp sin databas, och sedan ser du följande:



Gör som i det exemplet, skriv in vad tabellen ska heta och hur många fälter den ska ha. För att fastställa det måste du tänka på vad du vill ha i din databas. I mitt exempel så har jag detta:
Code:
ID*   Date   Name   Title   Text

* du måste ha en id kolumn (behöver dock inte heta id Razz)
vilket är 5 st. altså skriver jag 5 i fälter.

Efter du tryckt på Kör kommer det upp en annan ruta där du ska fylla in vad fälterna ska heta.

Jag har fyllt i följande:

Jag vet dock inte vad alla dessa sakerna som "varchar" är osv Razz

tryck på spara så får du upp en ruta som ser ut såhär:


koden
Code:
CREATE TABLE `news` (
`id` TINYINT( 11 ) NOT NULL AUTO_INCREMENT ,
`date` DATE DEFAULT '000-00-00' NOT NULL ,
`name` VARCHAR( 55 ) NOT NULL ,
`title` VARCHAR( 55 ) NOT NULL ,
`text` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
);

är SQL kod.
När du tryckte spara så körde phpMyAdmin den frågan till mysql databasen.
När du lärt dig SQL så behöver du inte gå igenom den guiden med phpMyAdmin utan du kan antingen göra det med ett php-"script" eller i phpMyAdmin under 'SQL'.
nu när du väl har gjort tabellen så kan du trycka på den och sedan välja "Lägg till".


Så, nu har du lagt in det första i din mysql-databas! Groovy ain't it?

Del 2
Ja, nu har vi kommit till den andra delen av denna sjukt stora guide i 2(3,4,5?) delar.

Låt mig sammanfatta första delen:
1. Vi skapade en databas
2. Vi skapade en tabell i databasen som hade id, datum, namn, titel och text i sig.
3. Vi satte in information i tabellen.


Nu har vi kommit till den roliga delen: Att visa det vi satt in i databasen mha PHP!

Starta ett nytt dokument i t.ex. anteckningar (eller om du har något program med syntax-färgning är det ännu bättre).
bara för sakens skull sätter vi in lite html kod i den:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>MYSQL POWAH!</title>
</head>

<body>
<table width="500" border="1">
  <tr>
    <td>Titel av Namn - Datum </td>
  </tr>
  <tr>
    <td>Text</td>
  </tr>
</table>
</body>
</html>

Detta är inte en html-guide, men jag tar förgivet att du redan vet vad detta betyder Wink

Innan all php-kod kan du sätta in detta som kommer ansluta till din mysql-databas:
Code:
<?php
// Ansluta till databasen
$hostname = "localhost";
$database = "katt"; // Din databas, i mitt fall katt
$username = "root"; //tror det är det med easyphp
$password = "password"; // daah

mysql_connect($hostname,$username,$password) or die("Could not connect to database!");
mysql_select_db($database) or die("Could not select DB!");

$query = "SELECT * FROM `news` ORDER BY `id` DESC"; //väljer vad du ska ta ut ur tabellen
$result = mysql_query($query);
?>

Detta ska stå före allt annat på sidan.
Här använder vi några funktioner så som mysql_connect() för att ansluta till MySQL servern. Du får själv ändra dina inloggningsuppgifter givetvis Wink

För att nu visa det vi gjort, så har jag gjort en tabell (som redan är med i HTML koden):
Code:
<table width="500" border="1">
<tr>
    <td>Titel av namn - Datum</td>
  </tr>
  <tr>
    <td>Text</td>
  </tr>
</table>

Det vi gör nu är att vi ska loopa alla mysql resultat som vi har i tabellen (just nu 1 Razz) från första <tr> till den sista.
För att loopa skriver vi in följande mellan
<table width="500" border="1">
och
<tr>
dvs:
Code:
<table width="500" border="1">
<?php while($row=mysql_fetch_array($result) or die(mysql_error())){ ?>
<tr>

Detta startar loopen.

Gå längre ner i koden så ser du att det står Titel. Skriv
Code:
<?php echo $row['title']; ?>
här
sedan gör du samma sak för namn,
Code:
<?php echo $row['name']; ?>

och för datum:
Code:
<?php echo $row['date']; ?>


Men nu när vi ska göra för texten är det en liten ändring, vi ska använda oss av funktionen nl2br() som automatiskt förvandlar radbrytningar till <br />.
Code:
<?php echo nl2br($row['text']); ?>


Nu är det enda kvar att avsluta loopen, hitta därför
</tr>
</table>
och sätt in
Code:
<?php } ?>

mellan dom.
Spara sidan som t.ex. mysqltest.php och skriv in localhost/mysqltest.php i din webbläsare and bobs your uncle!


Altså, den fullständiga koden blir följande:
Code:

<?php
// Ansluta till databasen
$hostname = "localhost";
$database = "katt"; // Din databas, i mitt fall katt
$username = "root"; //tror det är det med easyphp
$password = "password"; // daah

mysql_connect($hostname,$username,$password) or die("Could not connect to database!");
mysql_select_db($database) or die("Could not select DB!");

$query = "SELECT * FROM `news` ORDER BY `id` DESC"; //väljer vad du ska ta ut ur tabellen
$result = mysql_query($query);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>MYSQL POWAH!</title>
</head>

<body>
<table width="500" border="1">
  <?php while($row=mysql_fetch_array($result) or die(mysql_error())){ //Startar att loopa mysqlrader?> <tr>
    <td><?php echo $row['title']; ?> av <?php echo $row['name']; ?> - <?php echo $row['date']; ?></td>
  </tr>
  <tr>
    <td><?php echo nl2br($row['text']); ?></td>
  </tr><?php } ?>
</table>
</body>
</html>


Have fun!

Nu kan du även testa att sätta in lite fler nyheter och se att de också kommer upp.


Man behöver dock inte diskutera särskilt länge förrän man kommer på att man kanske borde designa och styla det lite, men det är en anna guide Razz

Koden kanske inte heller är den bästa då det finns 1000 olika sätt att göra detta på, men det är iallafall ett fungerande sätt Smile


Tillägg
Som mts skrev i en annan topic så kan det vara bra att ha informationen om att ansluta till mysql databasen i en annan .php fil som man lätt kan komma åt med alla sidor som man behöver ansluta till mysql databasen med.
Du ska därför hitta detta i koden:
Code:

// Ansluta till databasen
$hostname = "localhost";
$database = "katt"; // Din databas, i mitt fall katt
$username = "root"; //tror det är det med easyphp
$password = "password"; // daah

mysql_connect($hostname,$username,$password) or die("Could not connect to database!");
mysql_select_db($database) or die("Could not select DB!");

Kan vara bra att stoppa i en egen fil som heter t.ex. db.php eller kanske config.php, vilket som och sedan ersätta den med koden
Code:
<?php include('db.php'); ?>

Man kan även använda require() och require_once() istället för include.

DVS, om du nu lägger det i en egen fil ska det se ut såhär:

db.php
Code:
<?php
// Ansluta till databasen
$hostname = "localhost";
$database = "katt"; // Din databas, i mitt fall katt
$username = "root"; //tror det är det med easyphp
$password = "password"; // daah

mysql_connect($hostname,$username,$password) or die("Could not connect to database!");
mysql_select_db($database) or die("Could not select DB!");
?>


och mysqltest.php
Code:
<?php
include('db.php'); // anslut till databasen

$query = "SELECT * FROM `news` ORDER BY `id` DESC"; //väljer vad du ska ta ut ur tabellen
$result = mysql_query($query);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>MYSQL POWAH!</title>
</head>

<body>
<table width="500" border="1">
  <?php while($row=mysql_fetch_array($result) or die(mysql_error())){ //Startar att loopa mysqlrader?> <tr>
    <td><?php echo $row['title']; ?> av <?php echo $row['name']; ?> - <?php echo $row['date']; ?></td>
  </tr>
  <tr>
    <td><?php echo nl2br($row['text']); ?></td>
  </tr><?php } ?>
</table>
</body>
</html>


Så, detta avslutar min guide, hoppas att den varit användbar för dig!
Har du några problem är det bara att skriva Smile

<Edit>
För mer information om MySQL så kan du läsa denna snabbguide:
http://internetworld.idg.se/webbstudio/pub/artikel.asp?id=2
</Edit>

_________________
satf - smrt.st
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Swedish Maffia Forum Index -> Guides All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
   
Powered by phpBB © 2001, 2005 phpBB Group
Om Cookies