Praca z bazą
 

Kasowanie danych
 
Wiemy już jak dodawać nowe rekordy, ale jak je kasować. Pokaże wam to na prostym skrypcie wypiszemy wszystkie rekordy z bazy i umieścimy w tabelce do której dodamy link kasujący rekord.
 
<html>
<head>
<title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
</head>
<body>
<table border="1" width="98%" cellspacing="0" cellpadding="0" bordercolorlight="#000000">
<tr>
<td width="96%" colspan="7" bgcolor="#C0C0C0">
<p align="center"><b><font size="2">Dane osobowe</font></b></td>
</tr>
<tr>
<td width="4%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2">&nbsp;ID</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2">Imię</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Nazwisko</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Data
urodzenia</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Adres</font></td>
<td width="14%" align="center" bgcolor="#E0E0E0"><font size="2">Telefon</font></td>
<td width="6%" align="center" bgcolor="#E0E0E0"><font size="2">Kasuj</font></td>
</tr>


<?php

mysql_connect ("127.0.0.1","admin","haslo");
mysql_select_db (daneosobowe);

$zapytanie = "SELECT * FROM dane ORDER BY imie DESC";
$wykonaj = mysql_query ($zapytanie);
while($wiersz=mysql_fetch_array ($wykonaj)) {
echo " <tr>
<td width=\"4%\">".$wiersz['id']."</td>
<td width=\"18%\">".$wiersz['imie']."</td>
<td width=\"18%\">".$wiersz['nazwisko']."</td>
<td width=\"18%\">".$wiersz['dataur']."</td>
<td width=\"18%\">".$wiersz['adres']."</td>
<td width=\"14%\">".$wiersz['telefon']."</td>
<td width=\"6%\"><b><a href=\"kasuj.php3?stan=del&iddel=".$wiersz['id']."\">KASUJ</a></b></td>
</tr>";
}
if($stan=='del') {
$zapytanie2="DELETE FROM dane WHERE id=$iddel";
$wynik2 = mysql_query($zapytanie2);
echo "Rekord o id=$iddel został skasowany !";
}
else {

}
?>
</table>
</body>
</html>


Skrypt ten powstał na bazie naszego wcześniejszego skryptu wypisującego dane. Dodałem pole z opcją skasowanie rekordu. Jeżeli do skryptu przyjdą dwie zmienne jedna z id rekordu do skasowania ($iddel) i druga uaktywniająca kasowanie ($stan=='del') wtedy skrypt skasuje rekord. Rekordy kasujemy komendą DELETE podając tabelkę oraz wartość pola np. id. Jeżeli któryś z rekordów ma właśnie taką wartość kasuje je. U nas id zawsze jest różne więc kasujemy tylko jeden rekord. Jeżeli jednak chcieli byśmy skasować więcej rekordów np. rekordy które w polu nazwisko zawierają wartość Kowalski wykonalibyśmy taką komendę :  DELETE FROM dane WHERE nazwisko=Kowalski , co w efekcie skasowało by rekordy wszystkich Kowalskich w naszej bazie.
Modyfikacja danych
 
No tak ale co zrobić gdy chcemy poprawić dane w bazie. Przykład. Nasz Kowalski zmienił numer telefonu lub miejsce zamieszkania. Nie musimy go kasować z bazy i dodawać ponownie, wtedy przecież zmienił by mu się jego id którym dotychczas się posługiwał. Trzeba rekord poprawić. Służy do tego komenda UPDATE. Poniżej przykładowy skrypt.
 
<html>
<head>
<title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
</head>
<body>
<table border="1" width="98%" cellspacing="0" cellpadding="0" bordercolorlight="#000000">
<tr>
<td width="96%" colspan="7" bgcolor="#C0C0C0">
<p align="center"><b><font size="2">Dane osobowe</font></b></td>
</tr>
<tr>
<td width="4%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2">&nbsp;ID</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2">Imię</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Nazwisko</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Data
urodzenia</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Adres</font></td>
<td width="14%" align="center" bgcolor="#E0E0E0"><font size="2">Telefon</font></td>
<td width="6%" align="center" bgcolor="#E0E0E0"><font size="2">Modyfikuj</font></td>
</tr>


<?php

mysql_connect ("127.0.0.1","admin","haslo");
mysql_select_db (daneosobowe);

$zapytanie = "SELECT * FROM dane ORDER BY imie DESC";
$wykonaj = mysql_query ($zapytanie);
while($wiersz=mysql_fetch_array ($wykonaj)) {
echo " <tr>
<td width=\"4%\">".$wiersz['id']."</td>
<td width=\"18%\">".$wiersz['imie']."</td>
<td width=\"18%\">".$wiersz['nazwisko']."</td>
<td width=\"18%\">".$wiersz['dataur']."</td>
<td width=\"18%\">".$wiersz['adres']."</td>
<td width=\"14%\">".$wiersz['telefon']."</td>
<td width=\"6%\"><b><a href=\"modyfikuj.php3?stan=modyf&idmodyf=".$wiersz['id']."\">Modyfikacja</a></b></td>
</tr>";
}
if($stan=='modyf') {
$zapytanie = "SELECT * FROM dane where id=$idmodyf";
$wykonaj = mysql_query ($zapytanie);
$tablica = mysql_fetch_array($wykonaj);
echo "<form method=\"get\" action=\"modyfikuj.php3\">
<div align=\"center\">
<center>
<table border=\"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Imie</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"imie\" value=\"".$tablica['imie']."\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwisko\" value=\"".$tablica['nazwisko']."\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Data urodzenia YYYY-MM-DD</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"dataur\" value=\"".$tablica['dataur']."\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Adres</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"adres\" value=\"".$tablica['adres']."\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Telefon</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"telefon\" value=\"".$tablica['telefon']."\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"100%\" colspan=\"2\">
<p align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"hidden\" name=\"modyfikuj\" value=\"$idmodyf\"><input type=\"submit\" value=\"Modyfikuj\" name=\"send\"></font></td>
</tr>
</table>
</center>
</div>
</form>";

}
elseif ($send=='Modyfikuj'){$zapytanie = "UPDATE dane SET imie='$imie', nazwisko='$nazwisko', dataur='$dataur', adres='$adres',telefon='$telefon' WHERE id=$modyfikuj";
$wykonaj = mysql_query ($zapytanie);
echo "<br>Dane poprawione<BR><a href=\"modyfikuj.php3\">Obejrzyj poprawiona bazę</a>";}
else {

}
?>
</table>
</body>
</html>

 
Sporo tego kodu, ale dla nas ważna w tym momencie jest jego końcówka w warunku elseif. Skrypt działa tak wyświetla rekordy z bazy. Umieszcza je w tabelce. Każdy rekord ma link do modyfikacji. Po kliknięciu na link wyświetla się formularz zawarty w warunki if. Do formularza wstawiane są dane pobrane z bazy. Po kliknieciu na przycisk modyfikuj modyfikujemy rekord. Część modyfikacyjna jest w warunku elseif. Do modyfikacji rekordu służy komenda UPDATE. Podajemy nowe wartości pól oraz rekord który ma zostać zmodyfikowany (WHERE id=$modyfikuj";).

 

Pobrano ze strony:
www.BlueMan.aplus.pl