|
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;
|
$sql = "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.
|
$result = mysqli_query($con, $sql);
if (!$result) {
echo "<tr><td colspan='3'>Virhe: " . mysqli_error($con) . "</td></tr>";
} else {
while($rivi =
mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $rivi['numero'] . "</td>";
echo "<td>" . $rivi['nimi'] . "</td>";
echo "<td>" . $rivi['osoite'] . "</td>";
echo "</tr>";
}
}
|
Lopuksi suljetaan kysely mysqli_close
käskyllä.
Loppussa ei unohdeta päättää html-koodia.
 |