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ä.
Loppussa ei unohdeta päättää html-koodia.
![](../images/sql1.gif) |