| Seuraava revisio | Edellinen revisio |
| tietokantaan_kytkeytyminen_ja_kyselyjen_tekeminen [2011/10/07 07:34] – luotu moversti | tietokantaan_kytkeytyminen_ja_kyselyjen_tekeminen [2015/08/13 07:20] (nykyinen) – ulkoinen muokkaus 127.0.0.1 |
|---|
| <code> | <code> |
| | USE kirjasto; |
| | |
| CREATE TABLE IF NOT EXISTS `kirjat` ( | CREATE TABLE IF NOT EXISTS `kirjat` ( |
| `id` int(8) NOT NULL AUTO_INCREMENT, | `id` int(8) NOT NULL AUTO_INCREMENT, |
| |
| INSERT INTO `kirjat` (`id`, `kirjoittaja`, `nimi`, `hinta`, `isbn`, `kustantaja`, `kustkotipaikka`) VALUES | INSERT INTO `kirjat` (`id`, `kirjoittaja`, `nimi`, `hinta`, `isbn`, `kustantaja`, `kustkotipaikka`) VALUES |
| (1, 'ff', 'sdf', 12.9, 'jkjl', 'jljklj', 'df'); | (1, 'Väinö Linna', 'Tuntematon sotilas', 14.95, '9789510367629 ', 'WSOY', 'Helsinki'); |
| </code> | </code> |
| |
| | Tiedosto ''index.php'' |
| <code php> | <code php> |
| <html> | <html> |
| <head> | <head> |
| <title>Kirjasto</title> | <title>Kirjasto : Kirjaluettelo</title> |
| </head> | </head> |
| <body> | <body> |
| <?php | <?php |
| try{ | // Yhdistetään tietokantaan |
| $yhteys = new PDO("mysql:localhost;dbname=kirjasto"); | $linkki = mysql_connect("localhost", "root", ""); |
| //$yhteys->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | |
| $kysely = $yhteys->prepare("SELECT * FROM kirjat"); | |
| $kysely->execute(); | |
| |
| } | if (!$linkki) |
| catch (PDOException $e) | |
| { | { |
| die("Virhe: ".$e->getMessage()); | die("Virhe yhdistettäessä tietokantaan: ".mysql_error()); |
| } | } |
| |
| //if (!$kysely) | // Valitaan tietokanta |
| //{ | mysql_select_db("kirjasto"); |
| // print_r($yhteys->errorInfo()); | |
| //} | |
| |
| while ($rivi = $kysely->fetch()) | //Tehdään MySQL-kysely, jolla valitaan kaikki tieto kirjoista |
| | $rivit = mysql_query("SELECT * FROM kirjat"); |
| | if (!$rivit) |
| { | { |
| print_r ($rivi); | die ("Virhe kyselyssä: ".mysql_error()); |
| } | } |
| |
| include ("valikko.php"); | |
| | //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> | </body> |
| </html> | </html> |
| </code> | </code> |
| | |
| | |
| | ''Tiedosto lisaa_kirja.php'' |
| |
| <code php> | <code php> |
| <html> | |
| <head> | |
| <title>Kirjasto</title> | |
| </head> | |
| |
| <?php | <?php |
| if (isset($_POST["submit"])) | if (isset($_POST["submit"])) |
| { | { |
| echo ("Lisätään kirja..."); | // Yhdistetään tietokantaan |
| try{ | $linkki = mysql_connect("localhost", "root", ""); |
| $yhteys = new PDO("mysql:localhost;dbname=kirjasto"); | |
| $kysely = $yhteys->prepare("INSERT INTO kirjat (kirjoittaja, kirja, hinta, isbn, kustantaja, kkoti) VAKUES (?, ?, ?, ?, ?, ?)"); | if (!$linkki) |
| $kysely->execute(array($_POST["kirjoittaja"],$_POST["kirja"],$_POST["hinta"],$_POST["isbn"],$_POST["kustantaja"],$_POST["kkoti"])); | |
| if (!$kysely) | |
| { | |
| print_r($yhteys->errorInfo()); | |
| } | |
| } | |
| catch (PDOException $e) | |
| { | { |
| die("Virhe: ".$e->getMessage()); | 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> | <body> |
| | |
| <form action="lisaa_kirja.php" method="post"> | <form action="lisaa_kirja.php" method="post"> |
| ID: <input type="text" name="id"><br> | |
| Kirjoittaja: <input type="text" name="kirjoittaja"><br> | Kirjoittaja: <input type="text" name="kirjoittaja"><br> |
| Kirja: <input type="text" name="kirja"><br> | Kirja: <input type="text" name="kirja"><br> |
| <input type="submit" value="Lähetä" name="submit"> | <input type="submit" value="Lähetä" name="submit"> |
| </form> | </form> |
| <?php | |
| include("valikko.php"); | <ul> |
| ?> | <li><a href="index.php">Kirjaluetteloon</a></li> |
| | </ul> |
| </body> | </body> |
| </html> | </html> |
| </code> | </code> |
| | |
| | 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'' |
| |
| <code php> | <code php> |
| <hr> | <?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> | <ul> |
| <li><a href="index.php">Luetteloon</a></li> | <li><a href="index.php">Kirjaluetteloon</a></li> |
| <li><a href="lisaa_kirja.php">Lisää kirja</a></li> | |
| </ul> | </ul> |
| | </body> |
| | </html> |
| </code> | </code> |
| | |
| | Edellisessä oletetaan, että alkuperäinen kirjojen listaustoiminto (''index.php'') on muokattu seuraavaksi: |
| | <code php> |
| | // 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"); |
| | |
| | </code> |
| | |
| | ''muokkaa_kirjaa.php'' saa siis ''GET''-muuttujan avulla tiedon muokattavan kirjan ''ID'':stä. |