|
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(); }
$virhe = ""; // määritellään muuttuja alkuun
|
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");
$sql = "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().
|
$result = mysqli_query($con, $sql);
if (!$result) {
$virhe = "Virhe: " . mysqli_errno($con) . ": " . mysqli_error($con); } 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) {
echo "<h2>Tallennusvirhe</h2>";
echo $virhe;
} else {
echo "<h2>Tiedot on talletettu</h2>";
}
?>
<p>
<a href="lomake.php">Takaisin lomakkeelle</a>
</body>
</html> |
|