Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nie wysłane dane z formularza edycji danych
Forum PHP.pl > Forum > Przedszkole
Problem z formularzem
Mam problem z zlokalizowaniem błędu z skrypcie. Mianowicie gdy wypełnię formularz i zatwierdzę dane, przekierowuje mnie na stronę lecz nie zmienia danych. Brak mi koncepcji od czego może to zależeć i co można by było dodać, zmienić aby edycja rekordu była możliwa. Najgorsze jest to iż żadnego błędu mi nie wyświetla, a dane z formularza nie zostają zapisane w tabeli bazy danych. Czy zrobiłem jakikolwiek błąd w samym zapytaniu?

Zdjęcia obrazujące mój problem: http://files.tinypic.pl/i/00273/llubtqv7prb6.jpg http://files.tinypic.pl/i/00273/dy43shrq6l1b.jpg

Skrypt wysyłania danych z formularza
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3. // update do tabeli leki
  4. //jeśli są
  5. if (isset($_POST['id'])==TRUE)
  6. {
  7. if ($_POST[nazwa]==TRUE){
  8. mysql_query("UPDATE lek SET Nazwa_lek='$_POST[nazwa]' WHERE ID_lek='$_POST[id_lek]'")or die('Błąd zapytania: '.mysql_error());}
  9.  
  10. if($_POST[producent]==TRUE){
  11. mysql_query("UPDATE lek SET Producent_lek='$_POST[producent]' WHERE ID_lek='$_POST[id_lek]'") or die('Błąd zapytania: '.mysql_error());}
  12.  
  13. if($_POST[cena]==TRUE){
  14. mysql_query("UPDATE lek SET Cena_lek='$_POST[cena]' WHERE ID_lek='$_POST[id_lek]'") or die('Błąd zapytania: '.mysql_error());}
  15.  
  16. if($_POST[kup]==TRUE){
  17. mysql_query("UPDATE lek SET Kupujacy_lek='$_POST[kup]' WHERE ID_lek='$_POST[id_lek]'") or die('Błąd zapytania: '.mysql_error());}
  18. }
  19.  
  20.  


Formularz: wyświetla wszystko zgodnie z ilością kolumn w tabeli. Nie wysyła jednak danych wpisanych w formularzu.
  1. <table border="0" rules="rows" style="border:5px #38b7c6 solid; width:800px; ">
  2. <form action="edytuj.php" method="post">
  3. <td width="286px">ID leku:</td><td width="300px"> <?php echo $L1; ?></td><td width="130px"><input type="hidden" name="id" /></td></tr>
  4. <tr><td>Nazwa leku:</td><td><?php echo $L2; ?></td><td><input type="text" name="nazwa" value="<?php echo $L2; ?>" /></td></tr>
  5. <tr><td>Producent leku:</td><td><?php echo $L3; ?></td><td><input type="text" name="producent" value="<?php echo $L3; ?>" /></td></tr>
  6. <tr><td>Cena leku:</td><td> <?php echo $L4; ?></td><td><input type="text" name="cena" value="<?php echo $L4; ?>"/></td></tr>
  7. <tr><td>Kupujący:</td><td> <?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; position: absolute; left: 300px;">Tak,edytuj</a></tr>
  10. <tr><a href="baza.php" style="background: red; position: absolute; left: 400px;">Nie powróc</a></tr>
  11. </form>
  12. </table>
  13.  


Skrypt pośredniczący w wyświetlaniu danych do formularza
  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 METODA 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. $_SESSION['id_lek'] = $_POST['id_lek'];
  9. $_SESSION['id_lek'] = $_GET['id_lek'];
  10. $link = mysql_connect('localhost', 'x', 'x')or die(mysql_error());
  11. mysql_select_db('szpital',$link)or die(mysql_error());
  12.  
  13.  
  14. //Jesli jest pobrany link <a href="edytuj1.php?id_lek='; echo $row[ID_lek]; echo '" >';echo'Lek #:'; echo $row[ID_lek]; echo '</a> pobrany z poprzedniej strony
  15. //wyslij Metodą GET lub POST id_lek z linku
  16. if(isset($_GET['id_lek'])){
  17. $lek = $_GET['id_lek'];}
  18. else { $lek = $_POST['id_lek']; }
  19. $tabela = 'lek';
  20. $pyt=mysql_query("SELECT * FROM $tabela WHERE ID_lek='$lek' ");
  21. while($lek=mysql_fetch_array($pyt))
  22. {
  23. $L1 = $lek['ID_lek'];
  24. $L2 = $lek['Nazwa_lek'];
  25. $L3 = $lek['Producent_lek'];
  26. $L4 = $lek['Cena_lek'];
  27. $L5 = $lek['Kupujacy_lek'];
  28. mysql_close($polaczenie);
  29.  
  30. }
  31. }
  32. ?>
Ruch Radzionków
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3. // update do tabeli leki
  4. //jeśli są
  5. if (isset($_POST['id']))
  6. {
  7. $edytuj = "UPDATE lek SET Nazwa_lek='$_POST[nazwa]' AND Producent_lek='$_POST[producent]' AND Cena_lek='$_POST[cena]' AND Kupujacy_lek='$_POST[kup]' WHERE ID_lek='$_POST[id_lek]'";
  8. $edytuj = mysql_query("$edytuj");
  9. }


pierwszy raz widze takie coś:
  1. if (isset($_POST['id'])==TRUE)

nie wiem co to wogule ma sprawdzac.
nospor
@Ruch Radzionków jeśli nie wiesz co zwraca ISSET i czemu to jest porównywane do TRUE, to może ty już lepiej nie pomagaj?

@gosc
warunek na zapis rekordu dałeś:
WHERE ID_lek='$_POST[id_lek]'"

No a przecież ID przekazujesz w indeksie id a nie id_lek....
tak ma byc:
WHERE ID_lek='$_POST[id]'"

Kolejną sprawą jest to, że Ty w formularzu nie uzupełniasz tego pola z ID. Ono jest puste.

ps:
error_reporting(E_ALL ^ E_NOTICE);
Ty weź wyświetlaj wszystkie błędy, bo tyle ich robisz, że głowa mała.

Tak ma byc:
error_reporting(E_ALL);
Problem z formularzem
Poradziłem się co do zmian jednakże nadal nie przynosi żadnych efektów. Zmieniłem zapis w względem poprzednika, usunąłem niekonieczne powtórzenie session_start() oraz niepotrzebne metody GET oraz POST. Dodatkowo na wstępie do if zmieniłem [id] na [nazwa], oraz zapisałem zmienne na wstępie które zstępują metody wysyłania. Reszta bez zmian. Czy składnia zapytania do MySQL jest poprawna?

Skrypt logowania po zmianach
  1. <?php
  2. include 'db.php';
  3.  
  4. // update do tabeli leki
  5. //jeśli są
  6. if (isset($_POST['nazwa'])==TRUE)
  7. {
  8.  
  9. $lek = $_POST['id'];
  10. $nazwa = $_POST['nazwa'];
  11. $producent = $_POST['producent'];
  12. $cena = $_POST['cena'];
  13. $kup = $_POST['kup'];
  14.  
  15. if ($_POST['nazwa']==TRUE){
  16. mysql_query("UPDATE lek SET Nazwa_lek='$nazwa' WHERE ID_lek='$lek]'")or die('Błąd zapytania: '.mysql_error());}
  17.  
  18. if($_POST['producent']==TRUE){
  19. mysql_query("UPDATE lek SET Producent_lek='$producent' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error());}
  20.  
  21. if($_POST['cena']==TRUE){
  22. mysql_query("UPDATE lek SET Cena_lek='$cena' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error());}
  23.  
  24. if($_POST['kup']==TRUE){
  25. mysql_query("UPDATE lek SET Kupujacy_lek='$kup' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error());}
  26. }
  27.  
  28. ?>
  29.  
nospor
Pokaz cały kod, włącznie z formem.

pozatym:
nie: '$lek]'
a:'$lek'
w jednym zapytaniu.
Problem z formularzem
  1. <?php
  2. include 'db.php';
  3.  
  4. // update do tabeli leki
  5. //jeśli są
  6. if (isset($_POST['nazwa'])==TRUE)
  7. {
  8.  
  9. $lek = $_POST['id'];
  10. $nazwa = $_POST['nazwa'];
  11. $producent = $_POST['producent'];
  12. $cena = $_POST['cena'];
  13. $kup = $_POST['kup'];
  14.  
  15. if ($_POST['nazwa']==TRUE){
  16. mysql_query("UPDATE lek SET Nazwa_lek='$nazwa' WHERE ID_lek='$lek]'")or die('Błąd zapytania: '.mysql_error());}
  17.  
  18. if($_POST['producent']==TRUE){
  19. mysql_query("UPDATE lek SET Producent_lek='$producent' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error());}
  20.  
  21. if($_POST['cena']==TRUE){
  22. mysql_query("UPDATE lek SET Cena_lek='$cena' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error());}
  23.  
  24. if($_POST['kup']==TRUE){
  25. mysql_query("UPDATE lek SET Kupujacy_lek='$kup' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error());}
  26. }
  27.  
  28. ?>
  29. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  30. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  31. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  32. <head>
  33. <meta http-equiv="content-type" content="text/html; charset= utf-8" />
  34. <link rel="stylesheet" type="text/css" href="strona1.css" />
  35. <title>Baza danych - Szpital</title>
  36. </head>
  37. <body>
  38. <div id="pojemnik">
  39. <div id="nag">
  40. <div id="menu">
  41. <ul>
  42. <li><a href="index.php" title="Powrót do Strony głównej">Strona Główna</a></li>
  43. <li><a href="konto.php" title="Zarządzanie kontem">Konto</a></li>
  44. <li><a href="baza.php" title="Baza danych leków">Baza Leków</a></li>
  45. <li><a href="rejestracja.php" title="Założenie konta">Rejestracja</a></li>
  46. <?php
  47. echo $_SESSION['login']; //zobaczysz czy coś pokazuje czy istnieje session
  48.  
  49. if(!isset($_SESSION['login'])) // dostęp dla zalogowanego użytkownika
  50. {
  51. echo '<li><a href="wylogowanie.php" title="Wylogowanie się">Wylogowanie</a></li>';
  52. }
  53. else
  54. {
  55. echo '<li><a href="logowanie.php" title="Zalogowanie się">Logowanie</a></li>';
  56. }
  57. ?>
  58. </ul>
  59. </div>
  60. </div>
  61. <div id="zawartosc">
  62. <table border="0" rules="rows" style="border:5px #38b7c6 solid; width:800px; ">
  63. <div>
  64. <?php
  65. include 'db.php'; // połączenie się z bazą danych
  66.  
  67.  
  68. //jesli METODA 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ą
  69. if (isset($_GET['id_lek'])) {
  70. $link = mysql_connect('localhost', 'root', 'szpitalSBD1proj')or die(mysql_error());
  71. mysql_select_db('szpital',$link)or die(mysql_error());
  72.  
  73.  
  74. //Jesli jest pobrany link <a href="edytuj1.php?id_lek='; echo $row[ID_lek]; echo '" >';echo'Lek #:'; echo $row[ID_lek]; echo '</a> pobrany z poprzedniej strony
  75. //wyslij Metodą GET lub POST id_lek z linku
  76. if(isset($_GET['id_lek'])){
  77. $lek = $_GET['id_lek'];}
  78. else { $lek = $_POST['id_lek']; }
  79. $tabela = 'lek';
  80. $pyt=mysql_query("SELECT * FROM $tabela WHERE ID_lek='$lek' ");
  81. while($lek=mysql_fetch_array($pyt))
  82. {
  83. $L1 = $lek['ID_lek'];
  84. $L2 = $lek['Nazwa_lek'];
  85. $L3 = $lek['Producent_lek'];
  86. $L4 = $lek['Cena_lek'];
  87. $L5 = $lek['Kupujacy_lek'];
  88. mysql_close($polaczenie);
  89.  
  90. }
  91. }
  92. ?>
  93.  
  94. <table border="0" rules="rows" style="border:5px #38b7c6 solid; width:800px; ">
  95. <tr><td></td><td><h2>Edycja leku</h2></td><td></td></tr>
  96. <form action="baza.php" method="POST">
  97. <tr><td width="286px">ID leku:</td><td width="300px"> <?php echo $L1; ?></td><td width="130px"><input type="hidden" name="id" value=<?php echo $L1; ?> /></td></tr>
  98. <tr><td>Nazwa leku:</td><td><?php echo $L2; ?></td><td><input type="text" name="nazwa" /></td></tr>
  99. <tr><td>Producent leku:</td><td><?php echo $L3; ?></td><td><input type="text" name="producent" /></td></tr>
  100. <tr><td>Cena leku:</td><td> <?php echo $L4; ?></td><td><input type="text" name="cena" /></td></tr>
  101. <tr><td>Kupujący:</td><td> <?php echo $L5; ?></td><td><input type="text" name="kup" /></td></tr>
  102. </table>
  103. <tr><a href="edytuj.php"style="background: blue; position: absolute; left: 300px;">Tak,edytuj</a></tr>
  104. <tr><a href="baza.php" style="background: red; position: absolute; left: 400px;">Nie powróc</a></tr>
  105. </form>
  106.  
  107. </div>
  108. </table>
  109. </div>
  110. </div></body>
  111.  
nospor
1) Nie pooprawiłeś '$lek]'
2) Zrób
print_r($_POST);
po wysłaniu forma i pokaz co zawiera
Problem z formularzem
Pomimo wklepania w każdej METODZIE POST w skrypcie wysyłania nie otrzymałem jakiegokolwiek komunikatu.

Skrypt wysyłania z formularza
  1. <?php
  2. include 'db.php';
  3.  
  4. // update do tabeli leki
  5. //jeśli są
  6. if (isset($_POST['nazwa'])==TRUE)
  7. {
  8. print_r($_POST);
  9. $lek = $_POST['id'];
  10. print_r($_POST);
  11. $nazwa = $_POST['nazwa'];
  12. print_r($_POST);
  13. $producent = $_POST['producent'];
  14. print_r($_POST);
  15. $cena = $_POST['cena'];
  16. print_r($_POST);
  17. $kup = $_POST['kup'];
  18. print_r($_POST);
  19.  
  20. if ($_POST['nazwa']==TRUE){
  21. mysql_query("UPDATE lek SET Nazwa_lek='$nazwa' WHERE ID_lek='$lek'")or die('Błąd zapytania: '.mysql_error()); print_r($_POST);}
  22.  
  23. if($_POST['producent']==TRUE){
  24. mysql_query("UPDATE lek SET Producent_lek='$producent' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error()); print_r($_POST);}
  25.  
  26. if($_POST['cena']==TRUE){
  27. mysql_query("UPDATE lek SET Cena_lek='$cena' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error()); print_r($_POST);}
  28.  
  29. if($_POST['kup']==TRUE){
  30. mysql_query("UPDATE lek SET Kupujacy_lek='$kup' WHERE ID_lek='$lek'") or die('Błąd zapytania: '.mysql_error()); print_r($_POST);}
  31.  
  32. }
  33.  
  34. ?>
nospor

Daj przed issetem...
print_r($_POST);
if (isset($_POST['nazwa'])==TRUE)
{

Problem z formularzem
Pojawiło się : Array ( )
nospor
Po wysłanoi forma masz Array()? Niemożliwe
Problem z formularzem
Sprawdziłem jeszcze raz i nie doprecyzowałem, array() pojawia się już po wejściu do formularza .

http://files.tinypic.pl/i/00273/5brsgt3w8vkl.jpg

A po wpisaniu i wysłaniu komunkatu brak/

http://pics.tinypic.pl/i/00273/8iav32pc4kk6.jpg
nospor
Kod updatujacy form to w jakim masz pliku? Bo ma to być w baza.php, bo tam przecież ślesz forma. A z opisu co tu dajesz wynika, że masz to zupełnie innym pliku

ps:
wczesniej miales
<form action="edytuj.php" method="post">
teraz masz
<form action="baza.php" method="post">

No jesli kod co wrzuca do bazy jest w edytuj.php to nadal ma byc
<form action="edytuj.php" method="post">

A to :
<tr><a href="edytuj.php"style="background: blue; position: absolute; left: 300px;">Tak,edytuj</a></tr>
nie ma byc linkiem, tylko ma być PRZYCISKIEM SUBMIT
Problem z formularzem
Cały kod włącznie z formularzem znajduje się w jednym pliku. Nazywa się edytuj1.PHP , całą stronę mam skopiowana w poście #6. Skrypt strony edytuj1.PHP będzie przekierowywana do strony edytuj.PHP. Przekierowanie w sumicie robi się identycznie jak update?
Problem z formularzem
Poinstruowałem się zgodnie z poleceniami, wszystko funkcjonuje jak należy. Dziękuje za poświęcony czas.
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.