|
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
$virhe = "";
$yhteysNro =
mysql_connect("localhost","tunnus","salasana");
if ($yhteysNro)
{
if (mysql_selectdb('kannan_nimi'))
{ |
Seuraavaksi käytetään lomakkeen nimiä
koodissa. Koodi luo yhden pitkän lähdekoodirivin, jota
SQL-tietokanta osaa tulkita ja liittää tietoja. Yhdistelmä \"
luo yhden lainausmerkin.
Esim: INSERT into puhelin (numero, nimi,
osoite) values( "234456", "Oskari", "Kivikuja 4");
|
$sql_lauseke = 'INSERT into puhelin
values(' .
"\"{$_POST['txtpuhelin']}\", " .
"\"{$_POST['txtnimi']}\", " .
"\"{$_POST['txtosoite']}\");"; |
Seuraava koodi yrittää liittää
lausekkeen tietokantaan. mysql_query-funktio suorittaa
muodostetun lauseen. Jos lause epäonnistuu, saamme
viheilmoituksen jossa on MySQL-virhenumero funktiolla
mysql_errno() ja englanninkielinen virheilmoitus funktiolla
mysql_error().
|
mysql_query ($sql_lauseke)
or $virhe = "Virhe: " . mysql_errno() . ": " .
mysql_error();
}
}
?> |
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> |
|