Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]Link do edycji rekordu
szydlak
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 4
Dołączył: 23.09.2016

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


Witam. Stawiam pierwsze kroki w php i pisze sobie taką aplikacje do przeprowadzania egzaminów teoretycznych z prawa jazdy (od czegoś trzeba zacząć).
Napisałem sobie skrypt, który pobiera mi z bazy mysql kursantów i wyświetla w formie tabelki. Wszystko działa. Teraz pytanko. Jak zrobić aby na końcu każdego wiersza miał np ikonę którą mogę kliknąć i przejść do edycji danego wiersza ? . Np otwiera się okienko modalne z formularzem już uzupełnionym, wprowadzam zmiany i zapisuje. Poradzę sobie z utworzeniem np ikony obok rekordu. Tylko jakie ona powinna mieć łącze ? żebym np mógł edytować dany rekord znając jego id. I czy jest możliwość że jeden formularz wykorzystam zarówno do tworzenia nowego wpisu jak i edycji rekordów?
Mój kod na obecną chwile wygląda w ten sposób. Oczywiście chciałbym dodać funkcję np newuser czyli klikam button dodaj użytkownika i wyświetla mi się formularz uzupełniam i dodaję . Z tym sobie poradzę. Ale chciałbym ten sam formularz wykorzystać do edycji danych. Mogą być linki do opisów tego typu działań.
Mój kod na obecną chwile wygląda w ten sposób
  1. <?php
  2. include 'login.php';
  3. showusers($conn);
  4. function showusers($conn)
  5. {
  6. $query='select id, CONCAT(name, " ", surname) as imie_nazwisko , pesel, pkk_number from users';
  7. $result = $conn->query($query);
  8. if (!$result) die($conn->error);
  9.  
  10. $rows = $result->num_rows;
  11. echo <<<_END
  12. <table>
  13. <thead>
  14. <tr>
  15. <th>L.p</th>
  16.  
  17. <th>Imię nazwisko</th>
  18.  
  19. <th>Nr pesel</th>
  20.  
  21. <th>Numer PKK</th>
  22. </tr>
  23. </thead>
  24. <tbody>
  25. _END;
  26.  
  27. for ($j = 0 ; $j < $rows ; ++$j)
  28. {
  29. $result->data_seek($j);
  30. $row = $result->fetch_array(MYSQLI_ASSOC);
  31. echo '<tr>';
  32. echo '<td>' . $row['id'] . '</td>';
  33. echo '<td>' . $row['imie_nazwisko'] . '</td>';
  34. echo '<td>' . $row['pesel'] . '</td>';
  35. echo '<td>' . $row['pkk_number'] . '</td>';
  36. echo '</tr>';
  37. }
  38. echo '</tbody></table>';
  39.  
  40. }
  41.  
  42. ?>

Dzięki i pozdrawiam.

Ten post edytował szydlak 4.10.2016, 20:37:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
abel1
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


Skoro dopiero zaczynasz naukę PHP i nie masz za wiele napisane
To przepisz swój kod na PDO bo MYSQLI jest już przestarzałe
wracając do twojego pytania
Żeby edytowac userka musisz mieć wyciągnięte z bazy jego dane (co już masz )
Następnie podpinasz to do zmiennej np. tak
  1. $id_user = $row['id']

To samo musisz zrobić z pozostałymi danymi które chcesz przenieść do pliku edycji
Robisz sobie np.formularz który przeniesie cię do pliku w którym będziesz edytował userka
  1. <form method="post" action="edycja.php"><input type="hidden" name="imie" value="<?php echo $imie ?>">

Tak jak w przykładzie zamieszczasz wszystkie dane które masz pobrane z bazy
Natomiast w pliku w którym nastąpi właściwa edycja tworzysz taki sam formularz z małą różnicą przykład
  1. <form method="post" ><input type="text" name="imie" value="<?php echo $_POST['imie']; ?>">

w ten sposób formularz na stronie edycji wypełni się danymi usera którego chcesz edytować
Jak widzisz w pierwszym przykładzie "input "ma typ "hidden" , czyli będzie niewidoczny
Widoczny powinien pozostać tylko "SUBMIT" po kliknięciu którego przeniesie cie do podstrony edycji
Oczywiście jeden plik "edycja.php" będziesz wykorzystywał do edytowania wszystkich userów
Do tworzenia nowych wpisów potrzebujesz osobnego formularza i osobnego połączenia z bazą
Edycje wykonujesz poprzez "UPDATE "do bazy a nowe wpisy "INSERT"
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 10:22