Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie przycisku usuń
Forum PHP.pl > Forum > Przedszkole
Maniek1313
Witajcie mam taki problem zrobiłem stronę w której pobierane są dane z bazy danych. I mam pytanie nie wiem jak napisać kod umożliwiający usunięcie danego rekordu z bazy danych.
Maniek1313
Jak ułożyć zapytanie to ja wiem.
Mi się rozchodzi jak zrobić przycisk o nazwie usuń który pobierze z bazy danych id i usunie.
muk4
Zrób formularz z ukrytym polem o wartości 'id' i wysyłaj ten formularz do skryptu który odczyta id i usunie rekord.

formularz
  1. <form method="post" action="usunrekord.php">
  2. <input type="hidden" name="id" value="<tutaj id>" />
  3. <input type="submit" value="Usuń" />
  4. </form>


usunrekord.php
  1. $id = (int)$_POST['id'];
  2. # usun rekord o id $id itd.


Maniek1313
dzięki nie wpadłem na to smile.gif

Wyskakuje błąd na stronie nie wiem czemu według mnie wszystko jest dobrze.

Oto część kodu.

  1. $usun_rekord = (int)$_POST['usun_rekord'];
  2. $bazadanych
  3. $sql8 = 'DELETE FROM `baza`.`dane` WHERE `dane`.`id` = '.$usun_rekord;
  4. $zapytanie8 = mysql_query($sql8)


Już działa zapomniałem dodać ; przy $bazadanych

Mam kolejny problem wszystko działa dobrze ale usuwa nie ten rekord zawsze usuwa ten który jest w liście na samym końcu.


Plik 1
  1. <form action="usundane.php" method="post">
  2. <input type="text" name="usun_rekord" value="'.$row["id"].'">
  3. <input type="submit" value="Usuń rekord" />
  4. </td></tr>


Plik usundane.php

  1. $usun_rekord = $_POST['usun_rekord'];
  2. $bazadanych;
  3. $sql8 = 'DELETE FROM `baza`.`dane` WHERE `dane`.`id` = '.$usun_rekord;
  4. $zapytanie8 = mysql_query($sql8)
  5. or die("Nie udało się usunąć rekordu z bazy danych");
  6. echo 'Rekord o numerze id: '.$usun_rekord.' został usunięty z bazy danych.';
drozdii07
nie rozumiem po co kombinowac z formularzem..nie lepiej zrobic link: usundane.php?id=[id z bazy]
muk4
1. Usuń bo niepotrzebne.
  1. $bazadanych;


2. Może jest to wina zmiennej którą przekazujesz do formularza, zanim wyślesz sam formularz. Usuwa inny rekord niż ten który ma id = $usun_rekord ?
Maniek1313
Jak bym umiał to bym zrobił hehe
Może to jest wina że wszystkie rekordy są wypisywane na ekran za pomocą pętli while
muk4
@UP
Jak chcesz linka to zamiast formularza daj:
  1. <a href="usundane.php?id=<tutaj id>" >Usuń</a>


a w pliku usundane.php zamień:
  1. $usun_rekord = $_POST['usun_rekord'];
  2. # na
  3. $usun_rekord = $_GET['usun_rekord'];
gorden
  1. if(isset($_GET['delete_id'])) {
  2. mysql_query("DELETE FROM tabela WHERE id = '$_GET[delete_id]'");
  3. echo 'Usunięto rekord';
  4. } else echo '<a href="?delete_id='.$id.'">Usuń rekord</a>';
drozdii07
Zamien na: $_GET['id']
Maniek1313
Już naprawiłem błąd poprostu zapomiałem na końcu formularza dodać </form> hehe
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.