tietokantaan_kytkeytyminen_ja_kyselyjen_tekeminen
USE kirjasto; CREATE TABLE IF NOT EXISTS `kirjat` ( `id` int(8) NOT NULL AUTO_INCREMENT, `kirjoittaja` text NOT NULL, `nimi` text NOT NULL, `hinta` float NOT NULL, `isbn` text NOT NULL, `kustantaja` text NOT NULL, `kustkotipaikka` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `kirjat` (`id`, `kirjoittaja`, `nimi`, `hinta`, `isbn`, `kustantaja`, `kustkotipaikka`) VALUES (1, 'Väinö Linna', 'Tuntematon sotilas', 14.95, '9789510367629 ', 'WSOY', 'Helsinki');
Tiedosto index.php
<html> <head> <title>Kirjasto : Kirjaluettelo</title> </head> <body> <?php // Yhdistetään tietokantaan $linkki = mysql_connect("localhost", "root", ""); if (!$linkki) { die("Virhe yhdistettäessä tietokantaan: ".mysql_error()); } // Valitaan tietokanta mysql_select_db("kirjasto"); //Tehdään MySQL-kysely, jolla valitaan kaikki tieto kirjoista $rivit = mysql_query("SELECT * FROM kirjat"); if (!$rivit) { die ("Virhe kyselyssä: ".mysql_error()); } //Käsitellään tulokset if (mysql_num_rows($rivit) == 0) { echo ("Ei vielä kirjoja!"); } else { // Tulostetaan taulukko kirjoista echo ("<table>\n"); echo ("<tr><td>ID</td><td>Kirjoittaja</td><td>Nimi</td><td>Hinta</td><td>ISBN</td><td>Kustantaja</td><td>Kustantajan kotipaikka</td></tr>\n"); while ($kirja = mysql_fetch_assoc($rivit)) { print ("<tr><td>{$kirja['id']}</td><td>{$kirja['kirjoittaja']}</td><td>{$kirja['nimi']}</td><td>{$kirja['hinta']}</td><td>{$kirja['isbn']}</td><td>{$kirja['kustantaja']}</td><td>{$kirja['kustkotipaikka']}</td></tr>\n"); } echo ("</table>\n"); } ?> <ul> <li><a href="lisaa_kirja.php">Lisää kirja</a></li> </ul> </body> </html>
Tiedosto lisaa_kirja.php
<?php if (isset($_POST["submit"])) { // Yhdistetään tietokantaan $linkki = mysql_connect("localhost", "root", ""); if (!$linkki) { die("Virhe yhdistettäessä tietokantaan: ".mysql_error()); } // Valitaan tietokanta mysql_select_db("kirjasto"); //Tehdään MySQL-kysely, jolla lisätään kirjan tiedot $kysely = "INSERT INTO kirjat (kirjoittaja, nimi, hinta, isbn, kustantaja, kustkotipaikka) VALUES ('{$_POST["kirjoittaja"]}','{$_POST["kirja"]}',{$_POST["hinta"]},'{$_POST["isbn"]}','{$_POST["kustantaja"]}','{$_POST["kkoti"]}')"; // INSERT INTO kirjat (kirjoittaja, nimi, hinta, isbn, kustantaja, kustkotipaikka) VALUES ('Väinö Linna','Tuntematon sotilas',19.40,'9789510367629 ','WSOY','Helsinki') $tulos = mysql_query($kysely); if (!$tulos) { die ("Virhe kyselyssä: ".mysql_error()); } header("Location: index.php"); } ?> <html> <head> <title>Kirjasto : Lisätään kirja</title> </head> <body> <form action="lisaa_kirja.php" method="post"> Kirjoittaja: <input type="text" name="kirjoittaja"><br> Kirja: <input type="text" name="kirja"><br> Hinta: <input type="text" name="hinta"><br> ISBN: <input type="text" name="isbn"><br> Kustantaja: <input type="text" name="kustantaja"><br> Kustantajan kotipaikka: <input type="text" name="kkoti"><br> <input type="submit" value="Lähetä" name="submit"> </form> <ul> <li><a href="index.php">Kirjaluetteloon</a></li> </ul> </body> </html>
Tee lomake, jolla voi päivittää kirjan tietoja.
Kysely, jolla valitaan tietty kirja (ID on kullakin kirjalla eri) SELECT * FROM kirjat WHERE id=$_GET['id']. Päivityskomento on UPDATE kirjat SET nimi=$_POST['nimi'], jne WHERE id=$_POST['id'].
Tiedosto muokkaa_kirjaa.php
<?php // Yhdistetään tietokantaan $linkki = mysql_connect("localhost", "root", ""); if (!$linkki) { die("Virhe yhdistettäessä tietokantaan: ".mysql_error()); } // Valitaan tietokanta mysql_select_db("kirjasto"); // Päivitetään kirjan tiedot lomakkeen tiedoilla if (isset($_POST["submit"])) { //Tehdään MySQL-kysely, jolla lisätään kirjan tiedot $kysely = "UPDATE kirjat SET kirjoittaja='{$_POST["kirjoittaja"]}', nimi='{$_POST["kirja"]}', hinta={$_POST["hinta"]}, isbn='{$_POST["isbn"]}', kustantaja='{$_POST["kustantaja"]}', kustkotipaikka='{$_POST["kkoti"]}' WHERE id={$_POST["id"]}"; echo $kysely; $tulos = mysql_query($kysely); if (!$tulos) { die ("Virhe kyselyssä: ".mysql_error()); } header("Location: index.php"); } ?> <html> <head> <title>Kirjasto : Lisätään kirja</title> </head> <body> <?php $kysely = "SELECT * FROM kirjat WHERE id={$_GET['id']}"; $tiedot = mysql_query($kysely); if (!$tiedot) { die ("Virhe kyselyssä: ".mysql_error()); } $kirja = mysql_fetch_assoc($tiedot); ?> <form action="muokkaa_kirjaa.php" method="post"> Kirjoittaja: <input type="text" name="kirjoittaja" value="<?php echo $kirja['kirjoittaja']?>"><br> Kirja: <input type="text" name="kirja" value="<?php echo $kirja['nimi']?>"><br> Hinta: <input type="text" name="hinta" value="<?php echo $kirja['hinta']?>"><br> ISBN: <input type="text" name="isbn" value="<?php echo $kirja['isbn']?>"><br> Kustantaja: <input type="text" name="kustantaja" value="<?php echo $kirja['kustantaja']?>"><br> Kustantajan kotipaikka: <input type="text" name="kkoti" value="<?php echo $kirja['kustkotipaikka']?>"><br> <input type="hidden" name=id value="<?php echo $kirja['id']?>"> <input type="submit" value="Lähetä" name="submit"> </form> <ul> <li><a href="index.php">Kirjaluetteloon</a></li> </ul> </body> </html>
Edellisessä oletetaan, että alkuperäinen kirjojen listaustoiminto (index.php) on muokattu seuraavaksi:
// Tulostetaan taulukko kirjoista echo ("<table>\n"); echo ("<tr><td>ID</td><td>Kirjoittaja</td><td>Nimi</td><td>Hinta</td><td>ISBN</td><td>Kustantaja</td><td>Kustantajan kotipaikka</td><td> </td></tr>\n"); while ($kirja = mysql_fetch_assoc($rivit)) { print ("<tr><td>{$kirja['id']}</td><td>{$kirja['kirjoittaja']}</td><td>{$kirja['nimi']}</td><td>{$kirja['hinta']}</td><td>{$kirja['isbn']}</td><td>{$kirja['kustantaja']}</td><td>{$kirja['kustkotipaikka']}</td><td><a href=\"muokkaa_kirjaa.php?id={$kirja['id']}\">Muokkaa</a></td></tr>\n"); } echo ("</table>\n");
muokkaa_kirjaa.php saa siis GET-muuttujan avulla tiedon muokattavan kirjan ID:stä.
tietokantaan_kytkeytyminen_ja_kyselyjen_tekeminen.txt · Viimeksi muutettu: 2015/08/13 07:20 / 127.0.0.1
