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ł: Wirtualizacja: Overcommitment

Wirtualizacja: Overcommitment

Artykuł: Marc Andreessen

Marc Andreessen

Artykuł: Zakończenie staży

Zakończenie staży

Artykuł: Brendan Eich

Brendan Eich

Artykuł: Nvidia GeForce 200

Nvidia GeForce 200

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły