Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Edytowanie rekordów
Forum PHP.pl > Forum > Przedszkole
Edycja rekordów
Mam problem z poprawką błędów skryptu edycji danego rekordu. Mianowicie nie przesyła mi niezbędnych danych na koleją stronę, które to były by wyświetlane, zaraz obok znajdują się inputy do wpisywania. Strona pierwsza posiada w sobie listę rekordów,po wybraniu buttonu przechodzi do kolejnej strony z formularzem.
Strona druga to formularz który ma za zadanie edytować jednocześnie wyświetlając rekord bez zmian. Niestety tak namieszałem że samemu nie wiem co zrobiłem źle.Chce skupić się na poprawnym pobieraniu danych oraz poprawnie sformułowaniu pytania do bazy.


STRONA PIERWSZA http://pics.tinypic.pl/i/00272/fyzfdlhao206.jpg
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3. include 'db.php'; // połączenie się z bazą danych
  4. $link = mysql_connect("localhost", "x", "x")or die("Could not connect");
  5. $mysql_baza = 'szpital';
  6. // połączenie ze schematem bazy danych
  7. mysql_select_db($mysql_baza) or die('Błąd: nie udało się wybrać schematu bazy danych.');
  8.  
  9. $pobierz = "SELECT * FROM lek"; //pobieranie danych
  10. $wynik = mysql_query($pobierz) or die("Złe zapytanie");
  11. { //wyświetlenie nazw kolumn
  12. echo '<tr >
  13. <td width="130px" height="10px"><b>ID Leku</b></td>
  14. <td width="130px" height="10px"><b>Nazwa leku</b></td>
  15. <td width="130px" height="10px"><b>Producent leku</b></td>
  16. <td width="130px" height="10px"><b>Cena leku</b></td>
  17. <td width="130px" height="10px"><b>Kupujacy</b></td>
  18. <td width="130px" height="10px"><b>Edytuj lek:</b></td>
  19. </tr>';
  20. // pobieranie z bazy danych
  21. while ($row = mysql_fetch_array($wynik)) {
  22. echo "<tr>";
  23. echo "<td>$row[ID_lek]</td>";
  24. echo "<td>$row[Nazwa_lek]</td>";
  25. echo "<td>$row[Producent_lek]</td>";
  26. echo "<td>$row[Cena_lek]</td>";
  27. echo "<td>$row[Kupujacy_lek]</td>";
  28. echo "<td>
  29. <form action='edytuj.php' method='get'name='edit'>
  30. <input type='submit' name='pedit' value='".$row['ID_lek']."'/>
  31. </form>
  32. <td> "; //pobiera ID z tabeli do i przenieś do fomularza
  33. }
  34. }
  35. mysql_close($link);
  36. ?>
  37. <?php
  38. $link = mysql_connect('localhost', 'x', 'x')or die(mysql_error());
  39. mysql_select_db('szpital',$link)or die(mysql_error());
  40. // Wysyłanie danych
  41. if (isset($_GET[pedit])) {
  42. $_GET[ID_lek];
  43. $_GET[kup];
  44. $_POST[Nazwa_lek];
  45. $_POST[Producent_lek];
  46. $_POST[Cena_lek];
  47. $_POST[Kupujacy_lek];
  48. //przenoszenie danych do formularza
  49. header("location: edytuj1.php");
  50. exit();
  51. }
  52. ?>


STRONA DRUGA http://pics.tinypic.pl/i/00272/say62e7hadtk.jpg

SKRYPT OBSŁUGUJĄCY
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3. include 'db.php'; // połączenie się z bazą danych
  4.  
  5. // Edycja leku
  6.  
  7. if (isset($_GET['pedit'])) {
  8. include 'db.php';
  9. $link = mysql_connect('localhost', 'x', 'x')or die(mysql_error());
  10. mysql_select_db('szpital',$link)or die(mysql_error());
  11.  
  12.  
  13. // update do tabeli filmy
  14. //jeśli są
  15. if (isset($_GET['id']) && isset($_POST['nazwa']) && isset($_POST['producent']) && isset($_POST['cena']) && isset($_POST['kup'])) {
  16.  
  17. $tabela = 'lek';
  18. if($_GET['id']==TRUE){
  19. mysql_query("UPDATE $tabela SET ID_lek='$_GET[id]' WHERE ID_lek='$_GET[ID_lek]'");}
  20.  
  21. if($_POST['nazwa']==TRUE){
  22. mysql_query("UPDATE $tabela SET Nazwa_lek='$_POST[nazwa]' WHERE ID_lek='$_GET[ID_lek]'");}
  23.  
  24. if($_POST['producent']==TRUE){
  25. mysql_query("UPDATE $tabela SET Producent_lek='$_POST[gatunek]' WHERE ID_lek='$_GET[ID_lek]'");}
  26.  
  27. if($_POST['cena']==TRUE){
  28. mysql_query("UPDATE $tabela SET Cena_lek='$_POST[prod]' WHERE ID_lek='$_GET[ID_lek]'");}
  29.  
  30. if($_POST['kup']==TRUE){
  31. mysql_query("UPDATE $tabela SET Kupujacy_lek='$_POST[kup]' WHERE ID_lek='$_GET[ID_lek]'");}
  32.  
  33. }
  34. if(isset($_GET['pedit'])){
  35. $lek = $_GET['pedit'];}
  36. else { $lek = $_POST['ID_lek']; }
  37. $tabela = 'lek';
  38. $wynik=mysql_query("SELECT FROM $tabela WHERE ID_lek='$lek' ");
  39. while($film=mysql_fetch_array($wynik))
  40. {
  41. $id = (int)$_GET['id'];
  42. $nazwa = $_POST['nazwa'];
  43. $producent = $_POST['producent'];
  44. $cena = $_POST['cena'];
  45. $kup = $_POST['kup'];
  46. mysql_close($polaczenie);
  47. }
  48. }
  49. ?>


FORMULARZ
  1. <table border="0" rules="rows" style="border:5px #38b7c6 solid; width:800px; ">
  2. <form action="edytuj.php" method="post">
  3. <tr><td>ID leku:<?php echo $id; ?></td><td><input type="hidden" name="id" /></td></tr>
  4. <tr><td>Nazwa leku:<?php echo $nazwa; ?> .$nazwa</td><td><input type="text" name="nazwa" /></td></tr>
  5. <tr><td>Producent leku: <?php echo $producent; ?></td><td><input type="text" name="producent" /></td></tr>
  6. <tr><td>Cena leku:<?php echo $cena; ?></td><td><input type="text" name="cena" /></td></tr>
  7. <tr><td>Kupujący:<?php echo $kup; ?></td><td><input type="text" name="kup" /></td></tr>
  8. </table>
  9. <tr><input type="submit" value="Tak, Edytuj" /></tr>
  10. <tr><a href="baza.php">Nie powróc</a></tr>
  11. </form>
  12. </table>


[MYSQL] pobierz, plaintext
  1.  
  2. -
  3.  
  4. --
  5. -- Struktura tabeli dla tabeli `lek`
  6.  
  7. --
  8.  
  9. (
  10.  
  11.  
  12.  
  13.  
  14.  
  15. )
  16.  
  17.  
  18.  
  19.  
  20. --
  21. -- Zrzut danych tabeli `lek`
  22. --
  23.  
  24.  
  25. 51&q=INSERT&lr=lang_en">INSERT 51&q=INTO&lr=lang_en">INTO `lek` (`ID_lek`, `Nazwa_lek`, `Producent_lek`, `Cena_lek`, `Kupujacy_lek`) 51&q=VALUES&lr=lang_en">VALUES
  26.  
  27. (1, 'MAGNEZ+B6 OPTIMAL', 'POLHARMA', 20.49, 'x'),
  28.  
  29. (2, 'Bodymax', 'ALEXUS', 5.46, 'x'),
  30.  
  31. (3, 'Metafen', 'POLHARMA', 50.55, 'x'),
  32.  
  33. (4, 'POLIPYRYNA', 'FAMOLOGIA', 34.30, 'x'),
  34.  
  35. (5, 'GRYPEX', 'POLHARMA SA', 24.80, 'x'),
  36.  
  37. (6, 'Pol', 'Aflapharma SA', 20.50, 'x'),
  38.  
  39. (7, 'Pol', 'pol', 20.50, 'x'),
  40.  
  41. (8, 'Pol', 'LEK', 20.60, 'x'),
  42.  
  43. (9, 'Pol', 'Aflapharma SA', 20.50, 'x');
  44.  
[MYSQL] pobierz, plaintext
djgarsi
W formularzu zmienną daj w input -> value, np:

  1. <input type="text" name="nazwa" value="<?php echo $producent; ?>" />


Dobrze zrozumiałem problem?
Edycja rekordów
W sumie tak, lecz początkowo tego nie planowałem. Nic mi wczoraj nie wychodziło, zrezygnowałem i o chłonięty po wczorajszym dniu udało mi się wykonać skrypt który który zamiast przycisku, link przenosi na kolejną stronę która to jest formularzem. Dodatkowo kolejna strona została prze-zemnie również na tyle, przestudiowana na spokojnie że udało mi się rozwiązać większość problemów.
Jedynym w chwili obecnej problemem jest brak aktualizacji rekordów. Nie wiem dlaczego ale nie zmieni mi rekordów.


Skrypt Aktualizacji
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3.  
  4. // update do tabeli leki
  5. //jeśli są
  6. if (isset($_POST['nazwa']) && isset($_POST['producent']) && isset($_POST['cena']) && isset($_POST['kup']))
  7. {
  8. $tabela = 'lek';
  9.  
  10. if($_POST['nazwa']==TRUE){
  11. mysql_query("UPDATE $tabela SET Nazwa_lek='$_POST[nazwa]' WHERE ID_lek='$_POST[id_lek]'");}
  12.  
  13. if($_POST['producent']==TRUE){
  14. mysql_query("UPDATE $tabela SET Producent_lek='$_POST[gatunek]' WHERE ID_lek='$_POST[id_lek]'");}
  15.  
  16. if($_POST['cena']==TRUE){
  17. mysql_query("UPDATE $tabela SET Cena_lek='$_POST[prod]' WHERE ID_lek='$_POST[id_lek]'");}
  18.  
  19. if($_POST['kup']==TRUE){
  20. mysql_query("UPDATE $tabela SET Kupujacy_lek='$_POST[kup]' WHERE ID_lek='$_POST[id_lek]'");}
  21. }
  22.  
  23. ?>


Skrypt pobierania danych
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3. include 'db.php'; // połączenie się z bazą danych
  4.  
  5.  
  6. //jesli METODĄ GET przśle link<a href="edytuj1.php?id_lek='; echo $row[ID_lek]; echo '" >';echo'Lek #:'; echo $row[ID_lek]; echo '</a> połącz się z MySQLem i bazą
  7. if (isset($_GET['id_lek'])) {
  8. $link = mysql_connect('localhost', 'x', 'x')or die(mysql_error());
  9. mysql_select_db('szpital',$link)or die(mysql_error());
  10.  
  11.  
  12. //Jesli jest pobrany link <a href="edytuj1.php?id_lek='; echo $row[ID_lek]; echo '" >';echo'Lek #:'; echo $row[ID_lek]; echo '</a> z poprzedniej strony
  13. //wyslij Metodą GET lub POST id_lek z linku
  14. if(isset($_GET['id_lek'])){
  15. $lek = $_GET['id_lek'];}
  16. else { $lek = $_POST['id_lek']; }
  17. $tabela = 'lek';
  18. $pyt=mysql_query("SELECT * FROM $tabela WHERE ID_lek='$lek' ");
  19. while($lek=mysql_fetch_array($pyt))
  20. {
  21. $L1 = $lek['ID_lek'];
  22. $L2 = $lek['Nazwa_lek'];
  23. $L3 = $lek['Producent_lek'];
  24. $L4 = $lek['Cena_lek'];
  25. $L5 = $lek['Kupujacy_lek'];
  26. mysql_close($polaczenie);
  27. //Pętla wyświetla wszstko dopóki nie wyświetli całego rekordu z bazy
  28. }
  29. }
  30. ?>


Jak mogę zmienić kolor napisów w inpucie które się wyświetlają oraz co można zrobić aby value=<?php echo $L2; ?> znikało po kliknięciu na pole?
  1. <table border="0" rules="rows" style="border:5px #38b7c6 solid; width:800px; ">
  2. <form action="edytuj.php" method="post">
  3. <tr><td>ID leku: <?php echo $L1; ?></td><td><input type="hidden" name="id" /></td></tr>
  4. <tr><td>Nazwa leku: <?php echo $L2; ?></td><td><input type="text" name="nazwa" value="<?php echo $L2; ?>" /></td></tr>
  5. <tr><td>Producent leku: <?php echo $L3; ?></td><td><input type="text" name="producent" value="<?php echo $L3; ?>" /></td></tr>
  6. <tr><td>Cena leku: <?php echo $L4; ?></td><td><input type="text" name="cena" value="<?php echo $L4; ?>"/></td></tr>
  7. <tr><td>Kupujący: <?php echo $L5; ?></td><td><input type="text" name="kup" value="<?php echo $L5; ?>"/></td></tr>
  8. </table>
  9. <tr><a href="edytuj.php"style="background: blue;">Tak,edytuj</a></tr>
  10. <tr><a href="baza.php" style="background: red;">Nie powróc</a></tr>
  11. </form>
  12. </table>
Edycja rekordów
Skrypt po wybraniu danego elementu:http://files.tinypic.pl/i/00273/5fsqhxoib904.jpg


Brak zmian z tabeli po wpisaniu innych wartości niż widniejących na pierwszym zdjęciu w rekordzie 9. http://files.tinypic.pl/i/00273/6np7fgtsbm2o.jpg
Nie wiem w czym tkwi problem lecz nie up datuje mi wiersza.

Ze względu na brak możliwości edycji poprzedniego posta zamieszczam zdjęcia w kolejnym.

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.