Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP/MySQL - Usuwanie konkretnego wiersza z tabeli
Forum PHP.pl > Forum > PHP
Matol66
Mam plik view.php w którym znajduje się poniższy kod, chodzi o to że:

Listuje wszystkie elementy z bazy danych wg. poniższego szablonu, i nie wiem jak usunąć wybrane dane z tabeli. oczywiście zmienna $row['tytul'] w zapytaniu o kasowanie nie może być, bo jest ona pusta po opuszczeniu pętli (chociaż nie wiem dlaczego nie trzyma ostatniej wartości). Próbowałem parserem strony tak aby wyciąć wszystkie znaki pomiędzy <h1 class="tytul"></h1> jednak nie udało mi się tego wdrożyć i mam obawę usunie wszystko, lub tylko pierwszy element. Kolejnym krokiem jaki zastosowałem było przechowywanie tytułów w tablicy, udało się je wylistować z tablicy jednak nie wiem jak odnieść się do tablicy tak aby konkretny element został usunięty. co_jest.gif

  1. $query = "SELECT * FROM tabela1 WHERE creator='".$_SESSION["nick"]."'";
  2. $result = mysql_query($query)
  3. or die("Query failed");
  4.  
  5. while ($row = mysql_fetch_array($result)) {
  6. echo '<form enctype="multipart/form-data" action="myaccount.php?account=view" method="POST">
  7. <h1 class"tytul">' . $row['tytul'] .'</h1>'.
  8. '<img src="../'.$row['obrazek'].'" class="image100">'.
  9. '<p>' . $row['opis'] .'</p>'.
  10. 'Pulap max: '.$row['cena_max'].'<br/>
  11. Ilosc: '.$row['ilosc'].'<br/>
  12. <input type="submit" name="delete" value="Usuń"><hr></form>'
  13. ;
  14. }
  15.  
  16. if($_POST['delete']){
  17. mysql_query("delete from tabela1 WHERE tytul = '"$row['tytul']."'") or die("Nie udało się usunąć");
  18. }


Bardzo proszę o pomoc 2 dzień się z tym męcze.
Kshyhoo
Pobierz ID rekordu i usuń... Tytuły mogą być takie same w wielu rekordach.
Matol66
Nie wiem jak się odnieść do konkretnego ID rekordu, również chciałem zrobić coś w tym stylu jednak nie wiem jak to zrobić? nie wiem jak powinno wyglądać zapytanie do bazy o usunięcie.
Bo mam w tabeli pole ID z funkcja auto increment, jednak jak mi tu będzie wypisywać również ID to ono się będzie zmieniać.
Kshyhoo
Sam musisz wiedzieć, co masz w bazie (moja wróżka niestety ma wolne). Generalnie musi być tak:
1. Pobierasz ID wpisu z bazy.
2. Umieszczasz ID wpisu w linku "USUŃ WPIS".
3. Zapytanie wtedy będzie takie:
  1. DELETE FROM tabela WHERE id='$id'";

Kombinuj...
Matol66
Ok. faktycznie pominąłem zawartość tablicy.

Kolumny:numer[autoincrement], tytul, opis, obrazek, cena_max, ilosc, Kategoria, creator

Mam kilka wierszy uzupełnionych o pełne dane dzięki czemu mogę wyświetlić listę metoda z pierwszego posta.

mogę pobrać numer i np przypisac go przyciskowi jako wartosc name.
Wtedy będzie
  1. '<input type="submit" name="'.row['numer].'" value="Usuń">'

zapytanie napisalem takie:
  1. DELETE FROM tablica1 WHERE numer = '.$_POST.'

oraz takie:
  1. DELETE FROM tablica1 WHERE numer = '.$_POST['name'].'


Jenak nie działa, bo rozumiem, że o coś takiego chodziło?

EDIT:
Ok działa:) Zrobiłem tak: Dodałem do pętli:

  1. <a href="usun.php?usun='.$row['numer'].'">Usun</a>


utworzyłem strone usun.php z kodem:
  1. $usun = $_GET['usun'];
  2. mysql_query("delete from tabela1 WHERE numer = '".$usun."'") or die("Nie udało się usunąć");


Dziękuję za pomoc Kshyhoo smile.gif
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.