This is an old revision of the document!


Enkla INSERT och PHP

Du har en databasanvändare på student.oedu.se som har samma login som ditt eget login och samma lösen som du fick från början.
Din databas heter samma som ditt login.

Du kan byta mysql-lösenord själv om du vill, men jag tycker att vi väntar med det.

Det finns något som heter phpMyAdmin (Se länk nedan). Det är ett lite trevligare gränssnitt mot databasen gjort i php. Ni ska logga in med er användare. Det ni skall börja med är att bekanta er med gränsnittet. Ni skall skapa några tabeller, lägga till fält, lägga till poster och ta bort några tabeller. Observera att ni hela tiden får SQL-kommandot för det ni gör.

admin.student.oedu.se - för att komma åt din databas.

  1. Skapa en tabell i phpmyadmin
    Tips när ni skapar en tabell:
    Döp tabellen till något på engelska i plural, använd camelcase eller underscore till 
    tabellnamn och fält namn. Vad man väljer spelar mindre roll det som är viktigt att att man är konsekvent.
    
    Döp ett fält till samma som tabellen men in sigular och ID på slutet, gör 
    det fältet till auto_increment, primary int.
    mysql> desc Items;
    +--------+----------+------+-----+---------+----------------+
    | Field  | Type     | Null | Key | Default | Extra          |
    +--------+----------+------+-----+---------+----------------+
    | ItemID | int(11)  | NO   | PRI | NULL    | auto_increment |
    | Item   | text     | NO   |     | NULL    |                |
    | Date   | datetime | NO   |     | NULL    |                |
    +--------+----------+------+-----+---------+----------------+
  2. Hur skriver man kommandot för att lägga in data i en tabell?
  3. Hur skriver man kommandot för att ändra data i en tabell?
  4. Hur skriver man kommandot för att ta bort data i en tabell?
  5. Se till att förstå koden nedan, se sedan till att få den att fungera på din egen databas!
  6. Se denna film: https://www.youtube.com/watch?v=ciNHn38EyRc OBS! Ni får bara testa på det ni skrivit själva!
  7. Gör en gästbok , spara och hämta data från databasen. Tanken är att ni ska kopiera er gamla gästbok och bara byta ut hur man sparar och hämtar data.
<?php
// 1. Koppla upp sig mot databasen
// server, login, password, database
$link = mysqli_connect("localhost", "lektion", "lektion", "lektion");
// 2. Säg till databasen att man vill ha ut resultatet i utf8
mysqli_set_charset($link, "utf8");
 
/*
 * Lägger in data i databasen om man har tryckt på submit,
 * laddar om sidan för att tömma POST cachen.
 */
if (!empty($_POST['Item'])) {
  $query="INSERT INTO `Items` (
  `ItemID` ,
  `Item` ,
  `Date`
  )
  VALUES (
  NULL , '" . $_POST['Item'] . "', NOW( )
  )";
  mysqli_query($link,$query);
  header('location: ' . basename($_SERVER['SCRIPT_NAME']));
  exit;
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="style.css">
  <title>Mallsida</title>
</head>
<body>
  <div id="page">
    <form action="" method="post" >
    <input type="text" name="Item">
    <input type="submit" name="submit" value="Spara">
  </form>
  <h3>Mina items</h3>
<?php
// 3. Ställ en fråga
$query="SELECT * FROM Items ORDER BY Date DESC";
$result=mysqli_query($link,$query);
echo mysqli_error($link);
// 4. Ta hand om resultatet
while($row=mysqli_fetch_assoc($result)){
  echo '<div class="item">' .  $row['Item'] . ' (inlagt: ' . $row['DateTime'] . ')</div>';
}
?>
  </div>
</body>
</html>