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
 - Opiskele SQL-kieltä - Tietokone

Opetusmateriaalia (PDF)
 - SQL-kielen perusteet

 

 

Kysy neuvoa tai anna vinkki

 
 

Tiedotteet ja aikataulut

7.1 Tervetuloa kurssille
SQL-tunnukset ja ftp testaus

 

Tehtävät ja palautus

Harjoitus php ja SQL

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

Palauta muistiolla linkki tekemällesi sivulle.  Nimeä muistio muotoon sukunimi_etunimi.txt

» Palauta linkki tänne