Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Usuwanie rekordów z bazy danych

środa,

Usuwanie rekordów z bazy danych

Aby w pełni prezentowane zrozumieć przykłady, wymagana jest znajomość zagadnień przedstawionych w poprzednich materiałach. Tabela wykorzystana w przykładach jest dostępna do pobrania.

Wyświetlanie danych

Wyświetlanie danych zrealizowano podobnie jak w poprzednim materiale. Zasadniczą różnicą jest generowanie formularzy, które umożliwią wskazanie danych do usunięcia. Do wysyłki formularza przyjęto metodę POST, ponieważ jego wysłanie wprowadzi trwałą zmianę po stronie serwera. Identyfikator rekordu do usunięcia umieszczony został jako atrybut value ukrytego (type="hidden") pola formularza.

include 'config.php';

$link = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);

$result = mysqli_query($link, "SELECT nid, fname, lname FROM names ORDER BY lname ASC LIMIT 10");

echo '<table><tr>
  <th>First name</th>
  <th>Last name</th>
  <th> </th>
</tr>';

while($row = mysqli_fetch_row($result)) {
  vprintf('<tr><td>%s</td><td>%s</td>
    <td><form action="" method="post">
    <input type="hidden" name="nid" value="%s">
    <input type="submit" name="s" value="Usuń">
    </form></td>
    </tr>', $row);
}

echo '</table>';

Wyświetlone dane

Imię Nazwisko  
OrenAguilar
CallumBarber
VincentBeach

Usuwanie rekordu

Z założenia, danym wysłanym przez użytkownika nie powinno się bezgranicznie ufać, dlatego za pomocą funkcji sprintf() wymuszany jest właściwy typ danych (%d). Po wykonaniu zapytania SQL strona zostaje przeładowana na adres ustalony na podstawie zmiennej $_SERVER['PHP_SELF'] – do tej samej lokalizacji, jednak za pomocą metody GET. Instrukcja die() oznacza bezwarunkowe zaprzestanie wykonywania dalszej części skryptu.

include 'config.php';

$link = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);

if(isset($_POST['nid'])) {
  $sql = sprintf("DELETE FROM names WHERE nid = %d", $_POST['nid']);
  mysqli_query($link, $sql);
  header('Location: ' . $_SERVER['PHP_SELF']);
  die();
}

Pełna implementacja usuwania danych

include 'config.php';

$link = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);

if(isset($_POST['nid'])) {
  $sql = sprintf("DELETE FROM names WHERE nid = %d", $_POST['nid']);
  mysqli_query($link, $sql);
  header('Location: ' . $_SERVER['PHP_SELF']);
  die();
}

$result = mysqli_query($link, "SELECT nid, fname, lname FROM names ORDER BY lname ASC LIMIT 10");

echo '<table><tr>
  <th>First name</th>
  <th>Last name</th>
  <th> </th>
</tr>';

while($row = mysqli_fetch_row($result)) {
  vprintf('<tr><td>%s</td><td>%s</td>
    <td><form action="" method="post">
    <input type="hidden" name="nid" value="%s">
    <input type="submit" name="s" value="Usuń">
    </form></td>
    </tr>', $row);
}

echo '</table>';

Podstawy pracy z MySQLi

  1. Wprowadzenie do MySQLi.
  2. Deklarowanie parametrów połączenia z bazą danych.
  3. Obsługa błędów w MySQLi.
  4. Pobieranie rekordów z bazy danych.
  5. Dodawanie rekordów.
  6. Usuwanie rekordów z bazy danych.
Artykuł: Konkurs z Języka Angielskiego Zawodowego

Konkurs z Języka Angielskiego Zawodowego

Artykuł: Testujemy kontroler ARGB

Testujemy kontroler ARGB

Artykuł: Olimpiada Zdrowia PCK

Olimpiada Zdrowia PCK

Artykuł: Zostań dawcą szpiku!

Zostań dawcą szpiku!

Artykuł: Przeglądarka Vivaldi

Przeglądarka Vivaldi

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły