1. Andmebaasi ja tabeli loomine (MySQL / XAMPP)
Mida teeme?
Loome andmebaasi ja tabeli, kuhu salvestame teated.
Kuidas?
- Ava XAMPP → MySQL → Admin
- phpMyAdminis loo andmebaas
- Loo tabel SQL käsuga:
CREATE TABLE lehed(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
pealkiri VARCHAR(50),
sisu TEXT
);
INSERT INTO lehed (pealkiri, sisu)
VALUES ('Ilmateade', 'Kuiv ilm');
Selgitused:
- id – unikaalne number igale reale
- VARCHAR(50) – kuni 50 märki
- TEXT – pikk tekst
- AUTO_INCREMENT – MySQL lisab ise numbri
2. Andmebaasi ühendamine PHP-s
Mida teeme?
Loome ühenduse MySQL serveriga.
config.php
<?php
$yhendus = new mysqli("localhost", "kasutaja", "parool", "andmebaas");
?>
3. Andmete lugemine (SELECT)
Mida teeme?
Kuvame tabelis olevad teated.
$kask = $yhendus->prepare("SELECT id, pealkiri, sisu FROM lehed");
$kask->bind_result($id, $pealkiri, $sisu);
$kask->execute();
while($kask->fetch()){
echo "<h2>".htmlspecialchars($pealkiri)."</h2>";
echo "<div>".htmlspecialchars($sisu)."</div>";
}
Oluline:
- htmlspecialchars() – muudab sisu turvaliseks
- while – loeb kõik read järjest
4. Andmete kustutamine (DELETE)
Mida teeme?
Lisame iga teate juurde kustutamislingi.
echo "<a href='$_SERVER[PHP_SELF]?kustutusid=$id'>kustuta</a>";
Lehe alguses kontroll:
if(isset($_REQUEST["kustutusid"])) {
$kask = $yhendus->prepare("DELETE FROM lehed WHERE id=?");
$kask->bind_param("i", $_REQUEST["kustutusid"]);
$kask->execute();
}
Selgitus:
- ?kustutusid=3 → kustutab rea ID-ga 3
5. Ühe teate vaatamine (ID järgi)
Mida teeme?
Kuvame vasakul pealkirjad, paremal sisu.
Pealkirjade loetelu:
$kask = $yhendus->prepare("SELECT id, pealkiri FROM lehed");
while($kask->fetch()){
echo "<li><a href='fail.php?id=$id'>".htmlspecialchars($pealkiri)."</a></li>";
}
Valitud teate sisu:
if(isset($_REQUEST["id"])) {
$kask = $yhendus->prepare("SELECT pealkiri, sisu FROM lehed WHERE id=?");
$kask->bind_param("i", $_REQUEST["id"]);
$kask->execute();
if($kask->fetch()){
echo "<h2>".htmlspecialchars($pealkiri)."</h2>";
echo htmlspecialchars($sisu);
}
}
6. Uue teate lisamine (INSERT)
Mida teeme?
Lisame vormi kaudu uue rea tabelisse.
Viide lisamiseks:
<a href="<?=$_SERVER['PHP_SELF']?>?lisamine=jah">Lisa ...</a>
Vormi kuvamine:
if(isset($_REQUEST["lisamine"])) {
?>
<form action="<?=$_SERVER['PHP_SELF']?>">
<input type="hidden" name="uusleht" value="jah" />
Pealkiri: <input type="text" name="pealkiri"><br>
Sisu: <textarea name="sisu"></textarea><br>
<input type="submit" value="Sisesta">
</form>
<?php
}
Andmete salvestamine:
if(isset($_REQUEST["uusleht"])) {
$kask = $yhendus->prepare("INSERT INTO lehed (pealkiri, sisu) VALUES (?, ?)");
$kask->bind_param("ss", $_REQUEST["pealkiri"], $_REQUEST["sisu"]);
$kask->execute();
header("Location: ".$_SERVER['PHP_SELF']);
exit();
}
7. Teadete muutmine (UPDATE)
Mida teeme?
Saame muuta olemasolevat teadet.
Muuda link:
<a href='$_SERVER[PHP_SELF]?id=$id&muutmine=jah'>muuda</a>
Vormi näitamine:
if(isset($_REQUEST["muutmine"])) {
?>
<form action="<?=$_SERVER['PHP_SELF']?>">
<input type="hidden" name="muutmisid" value="<?=$id?>">
Pealkiri: <input type="text" name="pealkiri" value="<?=htmlspecialchars($pealkiri)?>">
<textarea name="sisu"><?=htmlspecialchars($sisu)?></textarea>
<input type="submit" value="Muuda">
</form>
<?php
}
Uuendamise SQL:
if(isset($_REQUEST["muutmisid"])) {
$kask = $yhendus->prepare("UPDATE lehed SET pealkiri=?, sisu=? WHERE id=?");
$kask->bind_param("ssi", $_REQUEST["pealkiri"], $_REQUEST["sisu"], $_REQUEST["muutmisid"]);
$kask->execute();
}
8. Kokkuvõte
Peamised PHP sammud
- Ühendus –
new mysqli() - prepare() – päringu ettevalmistus
- bind_param / bind_result – andmete sidumine
- execute() – päringu käivitamine
- fetch() – andmete lugemine

