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.
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> |
|