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 sarakkeille annetaan 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 aloitetaan SQL-käskyt php-koodin avulla. Ensiksi otetaan yhteyttä MySQL-palvelimeen mysql_connect()-funktiolla. Yhteyden saamiseksi, funktiolle on lisättävä palvelin, tunnus ja salasana. Jos yhteys ei onnistu, antaa se arvoksi nolla.

<?php
$yhteysNro = mysql_connect("localhost","tunnus","salasana");
if ($yhteysNro)

Kun yhteys on muodostettu palvelimelle, valitaan tietokanta mysql_selectdb()-funktiolla. Tänne määritellään tietokannan nimi.

{
if (mysql_selectdb('kannan_nimi'))

Itse kysely MySQL-tietokantaan tapahtuu mysql_query ()-funktiolla. Mallissa tehdään kysely puhelin-tauluun. 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;
 

 {
$tulosrivit = mysql_query ('SELECT * FROM puhelin ORDER By nimi')
or die ('Kyselyvirhe!');

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

while($rivi = mysql_fetch_array($tulosrivit))
{
print('<tr><td>');
print $rivi["numero"];
print('</td><td>');
print $rivi["nimi"];
print('</td><td>');
print $rivi["osoite"];
print('</td></tr>');
print ("\n");
}
mysql_free_result($tulosrivit);

Alussa määriteltyjen if- virhemääritelmien else-komennot tulevat loppuun. Samoin päätetään php-osuus.

 }
else
echo "Tietokanta puhelin ei avautunut!";
}
else
echo "Tietokantaan kytkeytyminen epäonnistui!";
?>

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