Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Edytowanie rekordów, Jak pobrać dane z tabeli z poprzedniej strony i pobrać je w formularzu
-Edycja rekordów-
post 30.01.2013, 17:31:30
Post #1





Goście







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
Go to the top of the page
+Quote Post
djgarsi
post 30.01.2013, 20:46:19
Post #2





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


W formularzu zmienną daj w input -> value, np:

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


Dobrze zrozumiałem problem?


--------------------
Go to the top of the page
+Quote Post
-Edycja rekordów-
post 31.01.2013, 16:20:55
Post #3





Goście







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>
Go to the top of the page
+Quote Post
-Edycja rekordów-
post 31.01.2013, 19:00:26
Post #4





Goście







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.

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: 14.06.2025 - 20:09