Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Usuwanie + modyfikacja rekordów
pedro84
post 29.01.2008, 22:51:24
Post #1





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Witka!

Utworzyłem sobie formularz, nie będe ukrywał, że korzystałem z neta. Programista PHP ze mnie żaden, a potrzebuję to zrobić.

Mianowicie, cały plik form.php wygląda tak:
  1. <?php
  2.  require("db.php");
  3. // odbieramy dane z formularza
  4. $band = $_POST['band'];
  5. $date = $_POST['date'];
  6.  
  7. if($band and $date) {
  8.  
  9. // dodajemy rekord do bazy
  10. $ins = @mysql_query("INSERT INTO audio SET band='$band', date='$date'");
  11.  
  12. if($ins) echo "Rekord został dodany poprawnie";
  13. else echo "Błąd nie udało się dodać nowego rekordu";
  14.  
  15.  
  16.  
  17. }
  18.  
  19. ?> 
  20. <br><br><br><br><br>
  21.  
  22. Twoja lista:<br>
  23. <?php
  24. $wynik = mysql_query("SELECT * FROM audio")
  25. or die('Błąd zapytania'); 
  26.  
  27. /*
  28. wyświetlamy wyniki, sprawdzamy,
  29. czy zapytanie zwróciło wartość większą od 0
  30. */
  31. if(mysql_num_rows($wynik) > 0) {
  32. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  33. echo "<table cellpadding=\"2\" border=1>";
  34. while($r = mysql_fetch_assoc($wynik)) {
  35. echo "<tr>";
  36. echo "<td>".$r['band']."</td>";
  37. echo "<td>".$r['date']."</td>";
  38. echo "<td>
  39.  <a href=\"index.php?action=del&id={$r['id']}\">DEL</a>
  40.  <a href=\"index.php?action=edit&id={$r['id']}\">EDIT</a>
  41.  </td>";
  42. echo "</tr>";
  43. }
  44. echo "</table>";
  45. }
  46. ?>
  47. <?php
  48.  
  49. if (isset($_GET['action'])){
  50. switch ($_GET['action']) {
  51.  
  52. case "del":
  53. $query = "DELETE FROM audio WHERE id='id'";
  54. $result = mysql_query($query);
  55.  break;
  56.  
  57. case "edit":
  58. break;
  59. }
  60. }
  61. ?>


Co musze zrobić, żeby usuwał bądź edytował mi rekordy w tabeli?

Cheers!
Pedro


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
user123
post 29.01.2008, 23:23:59
Post #2





Grupa: Zarejestrowani
Postów: 231
Pomógł: 2
Dołączył: 2.08.2006
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Nie wiem czy o to Ci chodzi ale najlepiej pobierze sobie z tablii liczbę porządkową albo jakąś niepowtarzalną daną i zrób:

  1. $log = $row['login'];
  2. $query = "UPDATE ludzie_z_listy SET pas='moje_nowe_tajne_haslo' WHERE login='$log'";
  3. @mysql_query($query);


--------------------
Youtube - Miedzynarodowa wersja: Wyposażenie siłowni
Go to the top of the page
+Quote Post
pedro84
post 29.01.2008, 23:54:30
Post #3





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Cytat(user123 @ 29.01.2008, 23:23:59 ) *
Nie wiem czy o to Ci chodzi ale najlepiej pobierze sobie z tablii liczbę porządkową albo jakąś niepowtarzalną daną i zrób:

  1. $log = $row['login'];
  2. $query = "UPDATE ludzie_z_listy SET pas='moje_nowe_tajne_haslo' WHERE login='$log'";
  3. @mysql_query($query);


Próbowałem coś z tego sklecić, ale mi nie idzie:(

Zrobiłem coś takiego, ale jak kliknę EDIT to mi wtedy kasuje wszystkie wpisy z pola BAND. Oto kod:
  1. <?php
  2. require("db.php");
  3.  
  4. if (isset($_GET['action'])){
  5. switch ($_GET['action']) {
  6.  
  7. case "del":
  8. $id = $_GET['id'];
  9. $query = "DELETE FROM audio WHERE id = '$id'";
  10. $result = mysql_query($query);
  11.  break;
  12.  
  13.  
  14. case "edit":
  15. $id = $_GET['id'];
  16. echo '<form action="index.php?action=edit&id=$id" method="post">
  17. Band:<br />
  18. <input type="text" name="band" /><br />
  19. Date:<br />
  20. <input type="text" name="date" /><br />
  21. <input type="submit" value="dodaj" />
  22. </form>';
  23. $band = $_GET['band'];
  24. $query = "UPDATE audio SET band='$band' WHERE id = '$id'";
  25. $result = mysql_query($query);
  26. break;
  27.  
  28. }
  29. }
  30. ?>


Co namotałem? wstydnis.gif


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
potreb
post 30.01.2008, 10:22:23
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Edytujesz wszystkie pola przed edytowaniem, przy okazji czyści ci wszystkie pola bo nie wysyłasz zmiennej band i id, dlatego ci nie działało, pisane z palca więc może coś nie działać :/

  1. <?php
  2. case "edit":
  3. $id = $_GET['id'];
  4. $wynik = mysql_query("SELECT * FROM audio WHERE id='$id'") or die('Błąd zapytania'); 
  5. while($r = mysql_fetch_assoc($wynik)) {
  6. echo '<form action="index.php?action=edit&id=$id" method="post">
  7. Band:<br />
  8. <input type="text" name="band" value="'.$r['band'].'" /><br />
  9. Date:<br />
  10. <input type="text" name="date" /><br />
  11. <input type="submit" value="dodaj" name="edit" />
  12. </form>';
  13. }
  14.  
  15. if ($_POST['edit']) {
  16. $id = $_GET['id'];
  17. $band = $_POST['band'];
  18. $query = "UPDATE audio SET band='$band' WHERE id = '$id'";
  19. $result = mysql_query($query);
  20. echo "Dane zostały zmodyfikowane";
  21. }
  22. break;
  23.  
  24. }
  25. ?>


Ten post edytował potreb 30.01.2008, 10:24:42


--------------------

Go to the top of the page
+Quote Post
pedro84
post 30.01.2008, 12:22:18
Post #5





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź! Wszystko generalnie działa, wyświetla tekst o pomyślnej modyfikacji danych, ale nie zmienia ich w bazie. Kombinuję, ale coś mi nie idzie:)

Edit:
Dostaję teraz komunikat
Kod
Notice: Undefined index: edit in D:\EasyPHP 2.0b1\www\bootleg_new\funcs.php on line 20


Ten post edytował pedro84 30.01.2008, 12:29:32


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
puz219
post 30.01.2008, 13:13:41
Post #6





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


pokaż kod pliku funcs.php

chyba powinno być:
  1. <?php
  2. if ($_GET['edit'])
  3. ?>


Ten post edytował puz219 30.01.2008, 13:16:12
Go to the top of the page
+Quote Post
potreb
post 30.01.2008, 13:16:15
Post #7





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if (isset($_POST['edit'])) {
  3. ?>


Masz włączone pokazywanie wszystkich błędów na stronie error_reporting(E_ALL)


--------------------

Go to the top of the page
+Quote Post
pedro84
post 30.01.2008, 13:57:36
Post #8





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


@potreb: Tak własnie mam, przez isset. ładnie wywala tekst, że Modyfikacja zakońcozna pomyslnie, ale nie zmienia danych w bazie. Raportowanie błedów mam właczone.

Edit
Nie wiem czy to ważne...ale kiedy na liście rekordów klikam Edit link ma postać
Kod
http://127.0.0.1/bootleg_new/index.php?action=edit&id=62
kiedy kliknę dodaj na formularzu edycji skrypt przechodzi do listy, ale link wtedy wygląda
Kod
http://127.0.0.1/bootleg_new/index.php?action=edit&id=$id


Ten post edytował pedro84 30.01.2008, 13:59:14


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
potreb
post 30.01.2008, 14:02:46
Post #9





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. <form action="index.php?action=edit&id='.$id.' " method="post">
  3. ?>


Ma być, po prostu nie przekazywało ci zmiennej dlatego nie mogłeś z edytować rekordu, niby nic a błąd jest.

Jeżeli masz jakąś zmienną w echo ' '; to ci nie wyświetli, musisz zmienną oprawić w dodatkowe apostrofy:
echo ' '.$zmienna.' ';

Edit: popełniłem przedtem literówkę, a raczej forum

Ten post edytował potreb 30.01.2008, 14:13:14


--------------------

Go to the top of the page
+Quote Post
pedro84
post 30.01.2008, 14:06:54
Post #10





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Generalnie...nic nie dało:)

Zmieniłem nawet we wszystkich plikach, także rekord band i date w ten sam sposób mi podaję. Nic się nie dzieje:(


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
potreb
post 30.01.2008, 14:09:41
Post #11





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Pokaż kod


--------------------

Go to the top of the page
+Quote Post
pedro84
post 30.01.2008, 14:12:51
Post #12





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Już mam! Dzięki wielkie!

Teraz ciuteczkę z innej beczki. A co mam zrobić, żeby po edycji bądź usunięciu przechodził do strony głównej?


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
potreb
post 30.01.2008, 14:15:34
Post #13





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dodajesz po miejscu gdzie aktualizuje kod:
  1. <?php
  2. header ('location: index.php');
  3. ?>


a jak wyskoczy ci błąd header coś tam:
dodaj na sam początek skryptu:
  1. <?php
  2.  
  3. //a na koncu skryptu
  4. ?>


--------------------

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:36