Käyttäjän työkalut

Sivuston työkalut


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>&nbsp</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