Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP i mysql usuwanie rekordów z bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
kamil1114
Proszę Was o pomoc , ponieważ nie umiem zrobić poprawnie skryptu , który usuwałby podane rekordy z bazy danych. Robię tak:
  1. $przypisanie=mysql_query('select id from newsy ORDER BY id DESC');
  2.  
  3. while($i=mysql_fetch_assoc($wyswietl)){
  4.  
  5. $id=$i['id'];
  6.  
  7. }
  8.  
  9.  
  10. echo "<b>Usuwanie newsów:</b></br</br>";
  11. echo "<form method='post'>";
  12. echo "<select name='kasowanie'>";
  13. echo "<option value='$id'>";
  14. echo "</select>";
  15. echo "<input type='submit' value='Kasuj'>";
  16. echo "</form>";
  17.  
  18. if($_POST['kasowanie'] == ' '){
  19. }
  20. else {
  21.  
  22. mysql_query("DELETE FROM newsy where id='$id'");
  23.  
  24.  
  25. }


Co robię źle ? W bazie danych jest tabela o nazwie newsy i 3 kolumny: id, tytul, tresc. Kolumna id ma auto_increment i jest kluczem podstawowym. Nie umiem sobie z tym poradzić.
Quantum
  1. $przypisanie=mysql_query('select id from newsy ORDER BY id DESC');
  2.  
  3. while($i=mysql_fetch_assoc($wyswietl)){
  4. $id=$i['id'];
  5. }


$id=$i['id'];

.... gdzie zmienna $wyswietl ? pomyłka w nazwie. BTW. w ten sposób do zmiennej $id przypiszesz ostatni pobrany identyfikator z bazy.

chyba chciałeś tak ? :

  1.  
  2. $wyniki=mysql_query('select id from newsy ORDER BY id DESC');
  3. echo '<b>Usuwanie newsów:</b></br></br>';
  4. echo '<form method="post">';
  5. echo '<select name="kasowanie">';
  6.  
  7. while($i=mysql_fetch_row($wyniki))
  8. {
  9. echo '<option value="' . $i[0] .'">News ' .$i[0]. ' (' . $i[1] . ')</option>';
  10. }
  11.  
  12. echo '</select>';
  13.  
  14. echo '<input type="submit" name="delete_news" value="Kasuj">';
  15. echo '</form>';
  16.  
  17. if(isset($_POST['delete_news']))
  18. {
  19. mysql_query('DELETE FROM newsy where id=' . intval($_POST['kasowanie']));
  20. }


poczytaj jeszcze jakieś kursy php, poćwicz z formularzami, musisz zrozumieć ogólną zasade działania.
Zawsze gdy tworzysz jakikolwiek skrypt zaplanuj jego etapy, tutaj sprowadzają się one do : "pobierz wszystkie id z tabeli news, posortuj je malejąco, wyświetl opcje, jeśli formularz został wysłany skasuj news o id z $_POST['kasowanie']."
kamil1114
Bardzo dziękuję Ci za pomoc. Zaraz przeanalizuję Twój kod i zobaczę co robiłem źle.

Nie rozumiem tylko tej linii:
  1. echo '<option value="' . $i[0] .'">News ' .$i[0]. ' (' . $i[1] . ')</option>';

thek
Zrobił tak, ponieważ funkcja do wyciągania danych to mysql_fetch_row, a nie jak zazwyczaj mysql_fetch_assoc lub zdanie się na domyslne zachowanie mysql_fetch_array smile.gif Odwołuje się wiec do danych poprzez offset 0 -> pierwsza kolumna wyniku, 1 -> druga kolumna itd...
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.