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>";
 
}
else if ($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";).


Autorem tekstu jest: Mateusz Dutkiewicz
Materiał dodany przez użytkownika: alphan