Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mozliwosc edytowania i usuwania rekordow w tabeli
Forum PHP.pl > Forum > PHP
Leniobitz
Witam, mam pewien problem. Napisalem skrypt, ktory pozwala na dodawanie rekordow do tabeli, tworzy tabele i powraca do strony z formularzem jednoczesnie wyswietlajac tabele. Teraz do wyswietlanej tabeli dodalem formularz z przyciskami usun i edytuj. Jak sie pewnie domyslacie, usun ma usuwac rekord, a edytuj przenosic do strony, gdzie bedzie mozliwosc edycji. Myslalem, ze problem rozwiaze wrzucajac do send.php
  1. if(isset($_POST['delete']))
, niestety nie daje to zadnego efektu. Jezeli macie jakis pomysl, jak powinienem sprawe rozwiazac, bede wdzieczny. Ponizej wrzucam index.php i send.php

index.php

  1. <html>
  2. <head>
  3. <title>
  4. Insert
  5. </title>
  6. </head>
  7. <body>
  8. <?php
  9. include 'logon.php';
  10. if (isset($_SESSION['zalogowany']))
  11. {
  12. include 'functions.php';
  13. $connection;
  14. $db;
  15. $klienci = mysql_query("select * from customers");
  16. if(mysql_num_rows($klienci) > 0) {
  17. echo "<table cellpadding=\"2\" border=1>";
  18. while($r = mysql_fetch_object($klienci))
  19. {
  20. echo "<tr>";
  21. echo "<td>".$r->ID."</td>";
  22. echo "<td>".$r->NAME."</td>";
  23. echo "<td>".$r->LOGIN."</td>";
  24. echo "<td>".$r->PASSWORD."</td>";
  25. echo "<td>".$r->MAIL."</td>";
  26. echo '<td><form action="send.php" method="post"><input type="submit" value="edytuj" name"edit"/></td>';
  27. echo '<td><input type="submit" value="usun" name"delete"/></form></td>';
  28. echo "</tr>";
  29. }
  30. echo "</table>";
  31. } ?>
  32. <form action="send.php" method="post">
  33. Nazwa Klienta:<br />
  34. <input type="text" name="name" /><br />
  35. Login:<br />
  36. <input type="text" name="login" /><br />
  37. Haslo:<br />
  38. <input type="text" name="password" /><br />
  39. Mail:<br />
  40. <input type="text" name="mail" /><br />
  41. <input type="submit" value="dodaj" name="add"/> <br />
  42. </form>
  43. <?php
  44. $link = '<a href="display.php?client=';
  45. $link2 = '">';
  46. $lista = mysql_query('select NAME from customers');
  47. while ($row = mysql_fetch_row($lista))
  48. {
  49. echo $link.$row[0].$link2.$row[0]."</a></br>";
  50. }
  51. mysql_close($connection);
  52. echo '2013-08-19 - Dodawanie, dynamiczne generowanie i uzupelnianie tablic.</br>';
  53. echo '2013-08-20 - Dodanie logowania.</br>';
  54. echo '2013-08-20 - Eksport na serwer.</br>';
  55. include 'logoff.php';
  56. }
  57. ?>
  58. </body>
  59. </html>


send.php

  1. <?php
  2. // odbieramy dane z formularza
  3. include 'logon.php';
  4. if(isset($_POST['delete']))
  5. {
  6. echo "sad";
  7. }
  8. elseif (isset($_SESSION['zalogowany']))
  9. {
  10. if(isset($_POST['add']))
  11. {
  12. $name = $_POST['name'];
  13. $login = $_POST['login'];
  14. $password = $_POST['password'];
  15. $mail = $_POST['mail'];
  16.  
  17. if( $name || $login || $password || $mail ) //sprawdza wpisane dane.
  18. {
  19.  
  20. // łączymy się z bazą danych
  21. @ $connection = @mysql_connect('localhost', 'user', 'haslo', 'baza')
  22. or die('Brak polaczenia z serwerem MySQL');
  23. $db = @mysql_select_db('baza', $connection)
  24. or die('Nie mogę polaczyc sie z bazą danych');
  25.  
  26. // dodajemy rekord do bazy
  27. $ins = @mysql_query("INSERT INTO customers values ( null, '$name','$login','$password','$mail')");
  28.  
  29.  
  30. if($ins) echo "Rekord został dodany poprawnie";
  31. else echo "Blad nie udalo sie dodac nowego rekordu";
  32. $client = @mysql_query("create table $name (nazwa char(20),number char(20), cos2 char(20), cos3 char(20), cos4 char(20))");
  33. mysql_close($connection);
  34. header( 'Location: ./') ;
  35. }
  36. }
  37.  
  38. }
  39. ?>
  40.  
nospor
nie: name"delete"
a: name="delete"
pisz ciut uwazniej...

ps:jednego formularza nie rozpoczynasie w jednym TD a konczy w drugim TD.....toz to na kilometr widac, ze jest to nieprawidlowa struktura HTML :/
Leniobitz
Dzieki wielkie, bylem pewien ze wszystko sprawdzilem, a jednak blad sie wkradl smile.gif Temat do zamkniecia, no chyba ze sie przyda moj kod smile.gif
Ps. wlasnie przed chwila to zmienilem, wczesniej bylo inaczej, juz poprawiam
mar1aczi
W linii 26 w index.php dla edit masz podobnie - brak znaku "=".
Leniobitz
A macie moze pomysl jak uzyskac cos takiego, zeby po kliknieciu usun usuwalo dokladnie ten rekord, przy ktorym kliknieto? Chodzi mi o to, jak wyciagnac ID konkretnego rekordu, bo potem juz sobie przeniose zmienna do send.php i zrobie odpowiednie polecenie sql.
nospor
No wypadaloby w formie to ID danego rekordu przekazac, nie sadzisz? Np. w ukrytym polu.
mar1aczi
Musisz podczas pobierania danych pobrać identyfikator rekordu (unikalna kolumna w danej tabeli) i przekazać ten identyfikator do "akcji" usuń.
Leniobitz
  1. echo '<td><form action="send.php" method="post"><input type="hidden" value="edytuj" name="$r->ID"/></form></td>';

Cos w tym stylu?
nospor
VALUE ma byc twoim ID a nie NAME..... NAME to ma byc nazwa pola, pod ktora bedziesz potem szukal tej wartosci

pozatym
echo 'blabla $zmienna blabla';
nie zadziala. Podstawy obslugi tekstow sie klaniaja
Leniobitz
ok, juz rozwiazalem, dziala 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.