Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z usunięciem rekordu
Forum PHP.pl > Forum > Przedszkole
matti9410
Witam mam oto taki kod
  1. echo '<form action="" method="post"><span id="naglowek">Wybierz kategorię: </span>';
  2. db_connect();
  3. $zapytanie1 = "SELECT * FROM menu";
  4. $wynik1 = mysql_query($zapytanie1) or die('</br>Brak kategorii !');
  5.  
  6. echo "<select onchange=\"this.form.submit()\" name=\"kategoria\">";
  7. echo "<option value=\"brak\">Brak</option>";
  8. while ( $row = mysql_fetch_row($wynik1) ) {
  9. $nazwa = $row[1];
  10. $wartosc = $row[2];
  11. echo "<option value=\"$wartosc\">$nazwa</option>";
  12. }
  13. db_close();
  14. echo "</select></form>";
  15.  
  16. $kategoria = $_POST['kategoria'];
  17. echo '<hr style="margin-top: 5px; margin-bottom: 5px;" size="1" color="#ededed"/><form action="" method="post">';
  18. db_connect();
  19. $zapytanie2 = "SELECT * FROM $kategoria";
  20. $wynik2 = mysql_query($zapytanie2) or die('Nie wybrano jeszcze kategorii.');
  21. $zapytanie3 = mysql_query("SELECT * FROM $kategoria");
  22. $ilosc_wierszy = mysql_num_rows($zapytanie3) or die('Brak zdjęć');
  23. while ( $row = mysql_fetch_row($wynik2) ) {
  24. $id = $row[0];
  25. $link = $row[1];
  26. echo '<div style="float:left; width:150px; height:150px; margin:10px; background:url(../'. ($link) .'); no-repeat; background-size:cover; background-attachement:fixed; 50% 50%; border-radius: 50%;"><input type="checkbox" name="zdjecie" value="'. ($id) .'" /></div>';
  27. }
  28. db_close();
  29.  
  30. $zdjecie = $_POST['zdjecie'];
  31. if ($ilosc_wierszy > 0)
  32. {
  33. echo '<hr style="margin-top: 10px; width: 100%; margin-bottom: 5px;" size="1" color="#ededed"/>';
  34. echo '<input style="padding: 5px; float: right;" type="submit" name="submit" value="Usuń wybrane"/></form>';
  35. }
  36.  
  37. If (isset($_POST['submit']))
  38. {
  39. db_connect();
  40. mysql_query("DELETE FROM $kategoria WHERE zdjecie_id = $zdjecie") or die('Nie usunięto zdjęcia.');
  41. db_close();
  42. echo "Zdjęcie zostało usunięte!";
  43. }


Chciałem aby na początku można było wybrać kategorie a dopiero później zdjęcie które ma być usunięte lecz kod nie działa. Mógłby mi ktoś pomóc go sprostować ? Wiem tylko tyle że gdzieś po drodze gubię zawartość $kategoria i przez to mi nie usuwa zdjęć. Jak to naprawić ?
nospor
No tak. W drugim formularzu, gdzie lecisz po zdjeciach, nigdzie nie masz wpisanej kategorii. Dodaj ją do pola ukrytego to sie bedzie wysylac i po sprawie.

Poza tym masz źle zaprojektowaną baze. Nie robi sie oddzielnych tabel dla kazdej kategorii.... Robi się jedną tabele a w niej dodaje pole KATEGORIA w ktorym sie trzyma ID danej kategorii.
matti9410
W ten sposób ?
  1. echo'<INPUT type="HIDDEN" NAME="nazwa" VALUE="$kategoria">';

Bo teraz też nie działa.
Turson
Wejdź w źródło strony i podejrzyj jak to wygląda. Jeżeli używasz pojednych ciapek ' to nie możesz tam wstawić tam tak $kategoria, a
  1. echo'<INPUT type="HIDDEN" NAME="nazwa" VALUE="'.$kategoria.'">';

to naprawde podstawy
matti9410
Nadal nie usuwa rekordu
Turson
Zrób tak i pokaż nam rezultat
  1. If (isset($_POST['submit']))
  2. {
  3. print_r($_POST);
  4. db_connect();
  5. mysql_query("DELETE FROM $kategoria WHERE zdjecie_id = $zdjecie") or die('Nie usunięto zdjęcia.');
  6. db_close();
  7. echo "Zdjęcie zostało usunięte!";
  8. }
matti9410
Ogólnie to momentalnie przeskakuje do komunikatu "Nie wybrano jeszcze kategorii" i tylko to widać.
nospor
No ale pole hidden ma miec wlasciwą nazwe a nie pierwszą z brzegu.....
echo'<input type="hidden" name="kategoria" value="'.$kategoria.'">';

No troche mysl co piszesz.
matti9410
Dobra dzięki działa ! 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.