Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Edycja i usuwanie rekordów
Forum PHP.pl > Forum > Przedszkole
ten_typ
Witam, znów mam problem.

Zalazłem skrypt, przerobiłem trochę ale 1 rzecz mi nie wychodzi. Skrypt pokazuje wszystkie rekordy, przy kliknięciu na "usuń" usuwa, i pokazuje wszystkie rekordy po aktualizacji. Z edycją jest podobnie - jak dam edytuj - wyświetla się formularz do zmian, przy czym wszystkie rekordy są wyświetlane poniżej formularza. Chciałbym, aby po kliknięciu na edytuj pokazał się formularz ale zniknął listening rekordów. Pomoże ktoś ?

  1. <?
  2.  
  3.    $connection = @mysql_connect('host', 'xyz', '123')
  4.    or die('Brak połączenia z serwerem MySQL');
  5.    $db = @mysql_select_db('db', $connection)
  6.    or die('Nie mogę połączyć się z bazą danych');
  7.    
  8.  
  9. if ($_POST['x'] == 'popraw') {
  10. if ($_POST['nazwa_poziomu'] && $_POST['opis_poziomu']) {
  11. $query = "UPDATE poziom SET nazwa_poziomu='".$_POST['nazwa_poziomu']."', opis_poziomu='".$_POST['opis_poziomu']."' WHERE id_poziomu='".$_POST['id_poziomu']."'";
  12. $wynik = mysql_query ($query);
  13. }
  14. } elseif ($_GET['x'] == 'edytuj') {
  15. $query = "SELECT * FROM poziom where id_poziomu='".$_GET['id_poziomu']."'";
  16. $wynik = mysql_query ($query);
  17. $rekord = mysql_fetch_assoc ($wynik);
  18. $id_poziomu = $rekord['id_poziomu']; $nazwa_poziomu = $rekord['nazwa_poziomu']; $opis_poziomu = $rekord['opis_poziomu'];
  19. echo   '<form method="post">Poprawa rekordu:<input type="hidden" name="x" value="popraw">
  20.        <input type="hidden" name="id_poziomu" value="'.$id_poziomu.'">
  21.        <table>
  22.        <tr><td>Nazwa poziomu:</td><td><input type="text" name="nazwa_poziomu" value="'.$nazwa_poziomu.'"></td></tr>
  23.        <tr><td>Opis poziomu:</td><td><input type="text" name="opis_poziomu" value="'.$opis_poziomu.'"></td></tr>
  24.        </table>
  25.        <input type="submit" value="Edytuj"></form>';
  26.  
  27. } elseif ($_GET['x'] == 'skasuj') {
  28. $wynik = mysql_query("DELETE FROM poziom WHERE id_poziomu = '".$_GET['id_poziomu']."'");
  29. }
  30. $wynik = mysql_query ("SELECT * FROM poziom;");
  31. echo "<table border=2 align='center' cellspacing=2 cellpadding=2><tr>
  32.    <td align=left'><b>Nazwa poziomu</b></td>
  33.    <td align='left'><b>Opis poziomu</b></td>
  34.    <td align='left'></td><td align='left'></td></tr>\n";
  35. while ($rekord = mysql_fetch_assoc ($wynik)) {
  36. $id_poziomu= $rekord['id_poziomu'];
  37. $nazwa_poziomu = $rekord['nazwa_poziomu'];
  38. $opis_poziomu = $rekord['opis_poziomu'];
  39. echo "<tr>
  40.    <td align=\"left\">$nazwa_poziomu</td>
  41.    <td align=\"left\">$opis_poziomu</td>
  42.    <td align=\"left\"><a href=\"edit.php?x=skasuj&id_poziomu=$id_poziomu\">skasuj</a></td>
  43.    <td align=\"left\"><a href=\"edit.php?x=edytuj&id_poziomu=$id_poziomu\">edytuj</a></td></tr>\n";
  44.    "</TABLE>";
  45.  
  46. }
  47. ?>
krzyszbi
masz warunki na akcje
  1. <?php
  2. // ciach ciach
  3. elseif ($_GET['x'] == 'skasuj') {
  4. $wynik = mysql_query("DELETE FROM poziom WHERE id_poziomu = '".$_GET['id_poziomu']."'");
  5. // po wykonaniu skasowania lub update to najlepiej przekierowanie bez parametru akcji
  6. }//daj else jak nie ma wybranej akcji
  7. else{
  8. $wynik = mysql_query ("SELECT * FROM poziom;");
  9. echo "<table border=2 align='center' cellspacing=2 cellpadding=2><tr>
  10.   <td align=left'><b>Nazwa poziomu</b></td>
  11.   <td align='left'><b>Opis poziomu</b></td>
  12.   <td align='left'></td><td align='left'></td></tr>\n";
  13. while ($rekord = mysql_fetch_assoc ($wynik)) {
  14. $id_poziomu= $rekord['id_poziomu'];
  15. $nazwa_poziomu = $rekord['nazwa_poziomu'];
  16. $opis_poziomu = $rekord['opis_poziomu'];
  17. echo "<tr>
  18.   <td align=\"left\">$nazwa_poziomu</td>
  19.   <td align=\"left\">$opis_poziomu</td>
  20.   <td align=\"left\"><a href=\"edit.php?x=skasuj&id_poziomu=$id_poziomu\">skasuj</a></td>
  21.   <td align=\"left\"><a href=\"edit.php?x=edytuj&id_poziomu=$id_poziomu\">edytuj</a></td></tr>\n";
  22.   "</TABLE>";
  23.  
  24. }
  25. }
  26. ?>
ten_typ
Super, działa, dzięki ;-)
Jeszcze pytanko - po wykonaniu mam czystą stronę - jak sprawić, aby po usunięciu albo edycji ( jak już nie mam listeningu rekordów) dać link do odświeżenia?

  1. <?php
  2. echo "<a href='ed.php'>abc</a>";
  3. ?>


ale nie wiem w którym miejscu dać, żeby wyświetlił się dopiero po wykonaniu akcji ?
krzyszbi
przy obecnym kodzie to po każdym warunku z akcji a konkretniej po każdym zapytaniu do bazy ( update, delete ) czyli mniej więcej linia 13 i 31
p.s. ta numeracja jest jakoś krzywo ale po wykonaniu zapytania ( update, delete )
adamz8
Witam

A ja mam pytanie czy da się tak zrobić,że kiedy już z edytuje pole, to może zniknąć przycisk edytuj ? i żeby już drugi raz tego samego pola nie można było z edytować, skorzystałem z kodu podanego na początku strony trochę go przerobiłem

Proszę o odp
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.