dbsys.info

Kapittel 12: Test deg selv

Hvert spørsmål har nøyaktig 1 korrekt svar.

Du får 3 poeng for hvert riktige svar, -1 poeng for hvert gale svar og 0 poeng for ubesvarte spørsmål.

Ta vare på svarene dine

Hemmelig kallenavn (nick):

Lag nytt kallenavn

 

1. Hva blir skrevet ut i listing 1 ?

2. Hva blir skrevet ut i listing 2 ?

3. Hva blir skrevet ut i listing 3 ?

4. Hva skjer når en bruker klikker på en lenke til et PHP-skript ?

5. Hvilken PHP-funksjon brukes for å utføre SQL-spørringer ?

6. Hvordan kan vi bruke PHP for å hente ut alle radene i et SQL spørreresultat ?

7. Hva blir skrevet ut i listing 4 ?

8. Hva skal sendes med som 4. parameter til funksjonen mysqli_connect ?

9. Hva brukes funksjonen mysqli_fetch_assoc til ?

10. Hva menes med at PHP brukes til å lage dynamiske nettsider ?

11. Hvordan knyttes et HTML-skjema til et PHP-skript ?

12. Hva er forskjellen på bruk av GET og POST i et HTML-skjema ?

13. Hvilken SQL-spørring blir utført av PHP-skriptet vis_varer.php hvis brukeren skriver Ha i HTML-skjemaet skjema.html ?

14. Hvilken PHP-funksjon kan brukes for å hente ut en rad fra et spørreresultat ?

Eksempler

Listing 1


$a = 2;
$b = 3;
$c = $a + $b;
echo "$a + $b = $c";

Listing 2


$a = 10;
$b = 20;
if ($a < 20) {
  echo "x";
}
if ($b < 10)
  echo "y";
else
  echo "z";

Listing 3


$tall = array(1,2,3,4,5);
$s = 0;
foreach ($tall as $t) {
  $s = $s + $t;
}
echo "$s";

Listing 4


$a = 10;
while ($a < 12) {
  $a = $a + 1;
}
echo "$a";

 

Koden under består av et SQL-skript som oppretter en MySQL-tabell vare, en HTML-fil skjema.html som viser et søkeskjema og et PHP-skript vis_varer.php som utfører en spørring mot MySQL-tabellen.

varer.sql


DROP TABLE IF EXISTS vare;

CREATE TABLE vare
(
  nr   INTEGER PRIMARY KEY,
  navn VARCHAR(20),
  pris DECIMAL(8,2)
) engine = InnoDB;

INSERT INTO vare(nr, navn, pris) VALUES
  (1, 'Hakke',  220.50),
  (2, 'Spett',  199.00),
  (3, 'Øks',    103.50);

COMMIT;

skjema.html


<!DOCTYPE html>
<html>
<head>
<title>MySQL-demo</title>
<meta charset="UTF-8" />
</head>
<body>

<h1>Varesøk</h1>

<form method="POST" action="vis_varer.php">

<p>
  Finn varer som starter med:
  <input type="text" name="txtNavn" size="20" />
</p>

<p>
  <input type="submit" value="Søk" name="sendKnapp">
  <input type="reset" value="Rensk skjema" name="renskKnapp">
</p>

</form>

</body>
</html>

vis_varer.php


<!DOCTYPE html>
<html>
<head>
<title>MySQL-demo</title>
<meta charset="UTF-8" />
</head>
<body>

<h1>Varesøk</h1>

<?php
$bruker   = "root";
$passord  = "";
$database = "test";
$db = mysqli_connect("localhost", $bruker, $passord, $database)
  or die("Klarte ikke å koble opp databasen!");
mysqli_set_charset($db, "utf8");

if (!isset($_POST["txtNavn"])) {
  echo "<p>Fyll ut søkeparameter!</p>";
}
else {
  $navn = $_POST["txtNavn"];
  // For øvrig: Her bør inndata "vaskes", se avsnitt 12.6.2.

  $sql = "SELECT * FROM vare WHERE navn LIKE '$navn%'";
  $resultat = mysqli_query($db, $sql);
  
  echo "<table border=\"1\">";
  echo "<tr><th>Nr</th><th>Navn</th><th>Pris</th></tr>";
  
  $rad = mysqli_fetch_assoc($resultat); 
  while ($rad) {
    $nr = $rad["nr"];
    $navn = $rad["navn"];
    $pris = $rad["pris"];
    echo "<tr><td>$nr</td><td>$navn</td><td>kr $pris</td></tr>";
    $rad = mysqli_fetch_assoc($resultat);
  }
  echo "</table>";
}

mysqli_close($db);
?>

</body>
</html>