Internet-ohjelmointi 2

 Etusivu

SQL-tietojen syöttäminen tietokantaan lomakkeella

Aiemmin olemme lukeneet tietoja SQL-tietokannasta ja tuoneet tietoja php-koodilla kotisivuille. Nyt kokeilemme laatia lomakkeen, joka lähettää tiedot omalle käsittelijälle, joka taas sisältää SQL-käskyjä. Tämä laatii ja lähettää koodin lomakkeen tiedoista, jotka SQL-tietokanta osaa käsitellä ja tallentaa tiedot.

Valmista kuvan mukainen lomake.

Puhelinnumero

Nimi

Osoite

Anna sinne lomakkeen kentille seuraavat nimet ja anna lomakkeen lähettäjä-ominaisuudeksi tallennus.php.

<form method="POST" action="tallennus.php">
Puhelinnumero<br>
<input type="text" name="txtpuhelin" size="20"></p>
<p>Nimi<br>
<input type="text" name="txtnimi" size="20"></p>
<p>Osoite<br>
<input type="text" name="txtosoite" size="20"></p>
<p><input type="submit" value="Lähetä" name="form"><input type="reset" value="Tyhjennä" name="tyhjennys"></p>
</form>

Seuraavaksi laadimme koodin joka lähettää tietoja SQL-tietokantaan. Avaa uusi tyhjä muistio ja tallenna se nimellä tallennus.php. Tämä tiedosto aloitetaan php-koodilla. Otetaan yhteys SQL-tietokantaan.

<?php
$con = mysqli_connect('localhost','tunnus','salasana','tietokanta');
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}

Seuraavaksi käytetään lomakkeen nimiä koodissa. Koodi luo yhden pitkän lähdekoodirivin, jota SQL-tietokanta osaa tulkita ja liittää tietoja.
Esim: INSERT into puhelin (numero, nimi, osoite) values( "234456", "Oskari", "Kivikuja 4");

if ($result = mysqli_query($con, "INSERT INTO `puhelin` (`numero`, `nimi`, `osoite`) VALUES ('{$_POST['txtpuhelin']}', '{$_POST['txtnimi']}', '{$_POST['txtosoite']}')")); 

Seuraavaksi mysqli_query-funktio suorittaa muodostetun lauseen. Jos lause epäonnistuu, saamme viheilmoituksen jossa on MySQL-virhenumero funktiolla mysql_errno() ja englanninkielinen virheilmoitus funktiolla mysql_error().

if (mysqli_errno() || mysqli_error()) {
$virhe = "Virhe: " . mysqli_errno() . ": " . mysqli_error();
}

mysqli_close($con);
?>

Jos kaikki sujuu hyvin, tulostuu seuraavat tekstit ja html-koodi. Nämä laitetaan koodin perään. Samoin täällä tarkistetaan vielä virheet ja annetaan otsikko sen mukaan. Tästä on linkki vielä takaisin lomakkeeseen.

<html>
<head>
</head>
<body>
<?php
if (strlen($virhe) > 0)
{
print("<h2>Tallennusvirhe</h2>");
print($virhe);
}
else
print("<h2>Tiedot on talletettu</h2>");
?>
<p>
<a href="lomake.php">Takaisin lomakkeelle</a>
</body>
</html>

Video

 
 

Aiheeseen liittyvät linkit

SQL-tietojen haku
 - W3schools SQL-insert
 - Ohjelmointiputka
 - MySQL kotisivu
 - phpMyAdmin kotisivut

Opetusmateriaalia (PDF)
 - SQL-kielen perusteet

 

 

Kysy neuvoa tai anna vinkki

 
 

Tiedotteet ja aikataulut

Opettaja ilmoittaa
Tähän tulee tarvittaessa tietoa kurssista

 

Tehtävät ja palautus

Harjoitus php ja SQL

1. Jatka elokuvakauppasivun tekoa. Tee toinen sivu jossa on lomake jonka avulla voit syöttää tietoja DVD-tietokantaasi.

Palauta vastaukset laatimalla OneDriveen kansio kurssin nimellä ja jakamalla se kurssin lopuksi opettajalle.