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

Video

 
 

Aiheeseen liittyvät linkit

SQL-tietojen haku
 - Mureakuha SQL-aloittelijaopas
 - 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