![]() |
|
|
|
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"> 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"> 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