Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Usuwanie rekordów z bazy danych
Forum PHP.pl > Forum > Przedszkole
tomek200
Witam. Mój kod do wyświetlania danych z tabeli wygląda tak:
  1. <?php
  2. function lacz_bd()
  3. {
  4. $db = new mysqli('localhost', 'tomek200', '', 'jakas baza');
  5. if (! $db)
  6. return false;
  7. $db->autocommit(TRUE);
  8. return $db;
  9. }
  10. //połaczenie z bazą
  11. $db = lacz_bd();
  12.  
  13. $zapytanie = "select data1, data, cena, ilosc, suma from users ORDER BY `ID` DESC";
  14.  
  15. $wynik = $db->query($zapytanie);
  16.  
  17. $ile_znalezionych = $wynik->num_rows;
  18. //rozpoczynamy budowanie tabeli dla naszych danych
  19. echo '<table>';
  20. echo '<tr><td style="border:solid 1px #000">Data</td><td style="border:solid 1px #000">data1</td> <td style="border:solid 1px #000">cena</td> <td style="border:solid 1px #000;padding:5px;">ilosc</td> <td style="border:solid 1px #000; width: 100px;">suma</td> </tr>';
  21.  
  22. for ($i=0; $i <$ile_znalezionych; $i++)
  23. {
  24. $wiersz = $wynik->fetch_assoc();
  25. echo '<tr>';
  26. echo '<td style="border:solid 1px #000;padding: 10px;">'.$wiersz['data1'].'</td>';
  27. echo '<td style="border:solid 1px #000;padding: 10px;">'.$wiersz['data'].'</td>';
  28. echo '<td style="padding: 10px;border:solid 1px #000">'.$wiersz['cena'].'</td>';
  29. echo '<td style="padding: 10px;border:solid 1px #000">'.$wiersz['ilosc'].'</td>';
  30. echo '<td style="padding: 10px;border:solid 1px #000;width: 50px;">'.$wiersz['suma'].'</td>';
  31. echo '</tr>';
  32. }
  33. echo '</table>';
  34.  
  35. ?>

I mam pytanie jak zrobić do każdego rekordu przycisk który wywoła usunięcie tego rekordu?
ilidir
Musisz dodać przycisk do każdego rekordu który usunie poprzez wywołanie polecenia MySQL z zmienna tą wartość.
tomek200
Wiem jak dodać przycisk ale nie wiem jak wywołać nim zapytanie MySQL
ilidir
napisz funkcje która zadziała na onclick który wywołasz swoim klawiszem nastepnie przekazać do funkcji wartość danego rekordu i pozabawie:)
tomek200
Chciłbym kontynuować temat
  1. <?php
  2. $form_button = '<form action="usun.php" method="POST"><input type="submit" value="Usuń"></form>';
  3. function lacz_bd()
  4. {
  5. $db = new mysqli('localhost', 'tomek200', 'haslo', 'jakas baza');
  6. if (! $db)
  7. return false;
  8. $db->autocommit(TRUE);
  9. return $db;
  10. }
  11. //połaczenie z bazą
  12. $db = lacz_bd();
  13. //zapytanie sql do bazy określające jakie dane mają zostać pobrane
  14. $zapytanie = "select data1, data, cena, ilosc, suma from users ORDER BY `ID` DESC";
  15. //pobranie wyniku zapytania
  16. $wynik = $db->query($zapytanie);
  17. //obliczanie ilości rekordów
  18. $ile_znalezionych = $wynik->num_rows;
  19. //rozpoczynamy budowanie tabeli dla naszych danych
  20. echo '<table>';
  21. echo '<tr><td style="border:solid 1px #000">Data</td><td style="border:solid 1px #000">Imie</td> <td style="border:solid 1px #000">E-Mail </td> <td style="border:solid 1px #000;padding:5px;">Temat</td> <td style="border:solid 1px #000; width: 100px;">Wiadomość</td> </tr>';
  22. //pętla po rekordach z bazy
  23. for ($i=0; $i <$ile_znalezionych; $i++)
  24. {
  25. $wiersz = $wynik->fetch_assoc();
  26. echo '<tr>';
  27. echo '<td style="border:solid 1px #000;padding: 10px;">'.$wiersz['data1'].'</td>';
  28. echo '<td style="border:solid 1px #000;padding: 10px;">'.$wiersz['data'].'</td>';
  29. echo '<td style="padding: 10px;border:solid 1px #000">'.$wiersz['cena'].'</td>';
  30. echo '<td style="padding: 10px;border:solid 1px #000">'.$wiersz['ilosc'].'</td>';
  31. echo '<td style="padding: 10px;border:solid 1px #000;width: 50px;">'.$wiersz['suma'].'</td>';
  32. echo '<td style="padding: 10px;border:solid 1px #000;width: 50px;">'.$form_button.'</td>';
  33. echo '</tr>';
  34. }
  35. echo '</table>';
  36.  
  37. ?>

W pliku usun.php mam zapytanie
  1. DELETE FROM `tabela` WHERE ID
Moje pytanie to co mam wpisać po ID żeby nie usówało mi wszystkich rekordów tylko ten przy którym wcisneliśmy przycisk usuń? Chodzi mi o coś takiego jak w PHP My Admin.
com
no id tego rekordu przekazane w formularzu czy getem, jak to zrobisz twój wybór ale miej na uwadze sql injection i te sprawy smile.gif
tomek200
Dobra ale jak przekazać id jak mi rekordy dodają się automatycznie z formularza. Bo ręcznie dodawać to nie ma sęsu.
nospor
Przeciez o tutaj:
  1. for ($i=0; $i <$ile_znalezionych; $i++)
  2.  
  3. {
  4.  
  5. $wiersz = $wynik->fetch_assoc();
  6.  
  7. echo '<tr>';
  8.  
  9. echo '<td style="border:solid 1px #000;padding: 10px;">'.$wiersz['data1'].'</td>';
  10.  
  11. echo '<td style="border:solid 1px #000;padding: 10px;">'.$wiersz['data'].'</td>';
  12.  
  13. echo '<td style="padding: 10px;border:solid 1px #000">'.$wiersz['cena'].'</td>';
  14.  
  15. echo '<td style="padding: 10px;border:solid 1px #000">'.$wiersz['ilosc'].'</td>';
  16.  
  17. echo '<td style="padding: 10px;border:solid 1px #000;width: 50px;">'.$wiersz['suma'].'</td>';
  18.  
  19. echo '<td style="padding: 10px;border:solid 1px #000;width: 50px;">'.$form_button.'</td>';
  20.  
  21. echo '</tr>';
  22.  
  23. }

juz dynamicznie wyswietlasz rekordy. Nie wyswietlasz ich recznie... tak samo dynamicznie masz generowac to ID
tomek200
Dzięki szkoda że wcześniej nie pomyślałem o tak banalnej rzeczy.
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.