| Skapa tabell | Datatyper | Användbara mysql-satser |


Användbara mysql-satser

1. Inledning för avsnittet

Mysql är en databas med ett eget språk. Språket php kan användas tillsammans med mysql-databasen.

Detta avsnitt fokuserar på några viktiga sql-satser som behövs för att spara, uppdatera, radera och hämta ut information i databasen.

Förutsättningen är att vi har en tabell i databasen som heter nyheter och i denna har vi 6 fält; id, namn, rubrik, meddelande, email och datum.

Förutsättningen är också att vi har ett formulär med dessa uppgifter:

<tr><td valign="top">Namn</td><td valign="top"><input type="text" name="namn"></td></tr>

<tr><td valign="top">Rubrik</td><td valign="top"><input type="text" name="rubrik"></td></tr>

<tr><td valign="top">Email</td><td valign="top"><input type="text" name="email"></td></tr>

<tr><td valign="top">Email</td><td valign="top"><input type="text" name="email"></td></tr>

<tr><td valign="top">Meddelande</td><td valign="top"><textarea name="meddelande" cols="36" rows="6"></textarea></td></tr>


Vill vi exempelvis spara information i databasen, matchar värden som name="rubrik" med '{$_POST['rubrik']}' i sql-satsen

Och name="rubrik" fungerar som en identifikation för respektive input-fält i formuläret. I respektive input-fält kommer nämligen användaren att fylla i olika information och därför måste vi inte enbart kunna särskilja dem åt, utan också kunna ange hur och vart i databastabellen informationen skall sparas.

Med mysql_error() som används i exemplen genereras eventuella felmeddelande genom denna kod.

Med NOW() som används i exemplen kan vi spara datumet i formatet 0000-00-00 00:00:00.

Obs: Vissa mysql-satser är långa och bryts därför automatiskt för ny rad här i exemplen. Men tänk på att varje rad avslutas med ett ;-tecken.



2. INSERT INTO

Med INSERT INTO infogar vi ny information i databasen och här är ett exempel på hur vi kan göra:


$sql = "INSERT INTO `nyheter` (`namn`, `rubrik`, `meddelande`, `email`, `datum`)
VALUES('{$_POST['namn']}', '{$_POST['rubrik']}', '{$_POST['meddelande']}', '{$_POST['email']}', NOW())"
;

mysql_query($sql) or die("SQL: $sql ".mysql_error());

header ("Location: nyhet.php");
exit;




3. UPDATE

UPDATE används för att förändra information som redan lagts in i databasen och ett praktiskt exempel ser ut så här:


$sql = "UPDATE `nyheter` SET `rubrik` = '{$_POST['rubrik']}', `meddelande` = '{$_POST['meddelande']}' WHERE `id` = '{$_GET['id']}' LIMIT 1";

mysql_query($sql) or die("SQL: $sql ".mysql_error());

header ("Location: nyhet.php");
exit;



Jag skrev WHERE `id` = '{$_GET['id']}' och här vill jag uppdatera en speciell rad i tabellen nyheter. Om man utgår ifrån id-numren i tabellen, vet man inte på förhand vilken rad som skall uppdateras. Därför är det vanligt att kom till den där uppdateringssidan genom en länk från en sida, där alla artiklar finns utskrivna. Genom länken skickar man med artikelns id-nummer och detta hänvisar man till vid en uppdatering.

Ordet WHERE fungerar i detta sammanhang som en inledning för ett villkor som styr vad som skall uppdateras.

LIMIT 1 kan anfogas i koden och begränsar då uppdateringen till ett enda fält, så att inte flera fält blir uppdaterade pga något misstag någonstans.



4. DELETE FROM

DELETE FROM raderar existerande information i databasen och här har vi också användning för LIMIT.


$sql = "DELETE FROM `nyheter` WHERE `id` = '{$_GET['id']}' LIMIT 1";

mysql_query($sql) or die("SQL: $sql ".mysql_error());

header ("Location: nyhet.php");
exit;




5. SELECT FROM

Med SELECT FROM hämtar vi ut information ur en databastabell i avsikt att presentera resultatet.


$sql = "SELECT `namn`, `rubrik`, `meddelande`, `email`, `datum` FROM `nyheter` ORDER BY `datum` DESC ";

$result = mysql_query($sql) or die("SQL: $sql ".mysql_error());



Uttrycket ORDER BY `datum` anger att informationen skall sorteras efter datum och DESC anger en sortering i bakvänd ordning, där senaste nyhet presenteras först.



6. JOIN

Med JOIN hämtar vi ut information ur två eller flera databastabell där informationen i den ena tabellen hämtas ut på grundval av informationen i den andra tabellen.

I exempel har vi två tabeller; nyheter och skribent. I nyheter sparar vi uppgifter som inläggets rubrik och textinnehåll, datum och vem som skrev (from_id). Utifrån värdet i fältet from_id, hämtar vi ut personuppgifter ur tabellen skribent.


$result = mysql_query("SELECT `nyheter`.`id`, `nyheter`.`from_id`, `nyheter`.`rubrik`, `nyheter`.`meddelande`, `nyheter`.`datum`, `skribent`.`namn`, `skribent`.`epost`
FROM `nyheter` AS `nyheter`, `skribent` AS `skribent`
WHERE `nyheter`.`from_id` = `skribent`.`id` AND `skribent`.`id` = `skribent`.`id`
ORDER BY `datum` DESC"
) or die(mysql_error());




 
portfolio
dagens bibelord
infoga bilder
ge hemsidan färg
introduktion css
bildväxling för menyer i JavaScript
Kodförteckning för html 4.0
Var med och rösta i en fototävling
  kontakt © Stefan Dahlén Söndag 5:e februari 2012