Internet-ohjelmointi 2

 Etusivu

SQL-tietojen hakeminen tietokannasta

Seuraavassa osassa haemme SQL-tietokannasta tietoja joita olemme manuaalisesti sinne syöttäneet phpMyAdminin avulla tehdessämme taulukkoja. Laadimme php-koodin avulla www-sivulle listat joihin syötämme tietoja tietokannasta.

Aloitamme laatimalla sivupohjan johon tiedot haetaan. Samalla rakennetaan ensimmäinen rivi taulukkoon joka tulostetaan sivulle. Taulukon ensimmäiselle riville luodaan otsikot.

<html>
<head>
<title>SQL-puhelinluettelo</title>
</head>

<body>
<h2 align="center">Puhelinluettelo</h2>
<table border="1" width="100%">
<tr>
<td><b>Numero</b></td>
<td><b>Nimi</b></td>
<td><b>Osoite</b></td>
</tr>

Seuraavaksi luodaan SQL-käskyt php-koodin avulla. Ensiksi otetaan yhteyttä MySQL-palvelimeen mysqli_connect()-funktiolla. Yhteyden saamiseksi, funktiolle on lisättävä palvelin, tunnus, salasana ja käytettävä tietokanta. Jos yhteys ei onnistu, antaa se virheilmoituksen.

<?php
$con = mysqli_connect('localhost','tunnus','salasana','tietokanta');
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}

Itse kysely MySQL-tietokantaan tapahtuu mysqli_query ()-funktiolla. Mallissa tehdään kysely puhelin-taulukkoon. Funktiolle annetaan parametreina SQL-lause joilla kysely suoritetaan. Näiden syntaksi suoritetaan seuraavan esimerkin mukaan:
SELECT <Sarake> FROM <Taulukko>

Jos halutaan tuoda kaikki tiedot, käytetään *-merkkiä:
SELECT * FROM puhelin;

Jos halutaan tuoda asiat määrätyssä järjestyksessä:
SELECT numero, nimi FROM puhelin;
 

if ($result = mysqli_query($con, "SELECT * FROM puhelin")) {

Kun tietokantayhteys on saatu, tulostetaan tietokantataulun rivit yksi kerrallaan sivulle. Esimerkissä on käytetty mysqli_fetch_array()-funktiota While-silmukassa. Silmukka ajetaan niin monta kertaa läpi, kunnes funktio palauttaa False-arvon.  mysqli_fetch_array()-funktiossa viitataan tietokantataulun vastaavilla nimillä. näitä voitaisiin myös kutsua numerollisten indeksien mukaan. Lopussa "\n" vaihtaa riviä lähdekoodissa.

while($rivi = mysqli_fetch_array($result))
{
echo "<tr><td>";
echo $rivi["numero"];
echo "</td><td>";
echo $rivi["nimi"];
echo "</td><td>";
echo $rivi["osoite"];
echo "</td></tr>";
echo "\n";
}
mysqli_free_result($result);
}

Lopuksi suljetaan kysely mysqli_close käskyllä.

mysqli_close($con);
?>

Loppussa ei unohdeta päättää html-koodia.

</table>
</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. Luo www-sivusto joka sopii musiikkikaupan tyyliin. Tee yhdelle sivulle taulukot jotka tuovat aiemmin luodussasi tietokannassa olevat cd-levyjen tiedot sivulle.

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

» Palauta linkki tänne