Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Problem z aktualizacją bazy danych
Forum PHP.pl > Forum > Przedszkole
butek
Są dwa formularze . W pierwszy wpisuję pesel który pobierany jest z bazy. Następnie pojawia się drugi formularz z danym peselem i imieniem które próbuje zmienic przez wpisanie go do drugiego formularza i wysłanie go do bazy (aktualizacja imienia), ale nie działa. Dlaczego ?
  1. <?php
  2. //error_reporting(0); 
  3. <HTML>
  4. <head>
  5. <meta http-equiv="Content-Language" content="pl">
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <title>Rekrutacja 2008 edycja</title>
  8. </head>
  9. <BODY>
  10. <center><H1>Rekrutacja 2008 edycja</H1>
  11. ';
  12.  
  13.  
  14. echo' o co chodzi';
  15. $url="xxx";
  16. $login="xxx";
  17. $haslo="xxx";
  18. $nazwa_bazy="xx";
  19. $tabela="xxx";
  20. if(!mysql_connect($url,$login,$haslo))
  21. {echo'błędy mysql<br>';}
  22. else
  23. {echo'połączono się z bazą';mysql_query('SET NAMES 'utf8'');mysql_select_db($nazwa_bazy);};
  24.  
  25. if(!empty($_POST['dalej1'])){$dalej1=$_POST['dalej1'];}else{$dalej1=0;};
  26. if(!empty($_POST['dalej2'])){$dalej2=$_POST['dalej2'];}else{$dalej2=0;};
  27.  
  28. if(empty($dalej1))
  29. {
  30. //PIERWSZY FORMUALRZ
  31. echo '<form method="POST" action="rekrutacja2008edycjabut.php">';
  32. Pesel(*)<input type="text" name="pesel" ><br>
  33. <br><br>
  34. <input type="hidden" name="dalej1" value="1">
  35. <input type="reset" value="Wyczyść" name="reset">
  36. <input type="submit" value="Zapisz">
  37. </form>';
  38. }else{
  39.  
  40. //odebranie wszystkich zmiennych z formularza
  41.  
  42. if(!empty($_POST['pesel'])){$pesel=$_POST['pesel'];}else{$pesel=0;};
  43. echo" pesel $pesel";
  44. if(empty($pesel) )
  45. {
  46. echo'<p align="center">
  47. UWAGA - nie zaznaczyłeś żądanej odpowiedzi.</p>
  48. <p align="center">
  49. <a href=javascript:history.back()>Powrót do formularza</a>
  50. </p>
  51. ';
  52. exit();
  53. };
  54.  
  55.  
  56. mysql_select_db($nazwa_bazy);
  57. //$tabela='dane';
  58. $zapytanie_sort = "SELECT * FROM $tabela where pesel='$pesel'";
  59. //$zapytanie_sort = "SELECT nazwisko, imie FROM $tabela WHERE pesel = '$pesel'";
  60. $wynik=mysql_query($zapytanie_sort);
  61. $row = mysql_fetch_array($wynik);
  62. $imie=$row['imie'];
  63. $nazwisko=$row['nazwisko'];
  64. echo"<br>Szukany uczeń to $imie $nazwisko<br>";
  65.  
  66. if(empty($dalej2))
  67. {
  68. //DRUGI FORMULARZ
  69. <form method=\"POST\" action=\"rekrutacja2008edycjabut.php\">
  70. <input type=\"text\" name=\"pesel\" value=\"$pesel\">
  71. <input type=\"text\" name=\"imie_new\" value=\"$imie\">
  72. <input type=\"hidden\" name=\"dalej2\" value=\"1\">
  73. <input type=\"submit\" value=\"wyslij\">
  74. </form>
  75. ";
  76. }else{
  77. if(!empty($_POST['imie_new'])){$imie_new=$_POST['imie_new'];}else{$imie_new=0;};
  78. if(!empty($_POST['pesel'])){$pesel=$_POST['pesel'];}else{$pesel=0;};
  79. echo"nowe imie $imie_new<br>";
  80. $zapytanie_new="UPDATE dane SET imie='$imie_new' WHERE pesel='$pesel'";
  81. mysql_query($zapytanie_new);
  82. }
  83. }
  84.  
  85. echo'<br>
  86. <a href=javascript:history.back()>Powrót do ćwiczenia</a><br><br>
  87. <a href="rekrutacja2008edycjabut.php">Powrót do spisu ćwiczeń</a>';
  88. echo'</center></BODY>
  89. </HTML>
  90. ';
  91. ?>
Przemo_
  1. <?php
  2. $zapytanie_new="UPDATE dane SET imie='$imie_new' WHERE pesel='$pesel'";
  3. ?>


zamień na

  1. <?php
  2. $zapytanie_new="UPDATE dane SET imie='" . $imie_new ."' WHERE pesel='" . $pesel ."'";
  3. ?>
.radex
O co ci, Przemo_ chodzi? Było dobrze. Problem tkwi gdzie indziej.

butek - popracuj nad wyglądem kodu, bo ciężko się z takiej papki wyczytać.
butek
Zrobiłem tak jak Przemo_ sugerował , ale bez zmian
Tibod
Zgadzam się z @radex_p: skrypt jest totalnie nieczytelny i strasznie zagmatwany.

Ale....
Aby skrypt doszedł do zapisu danych do foemularz potrzebuje przez GET dalej 2 i dalej1. W drugim formularzu musisz dopisać
Kod
<input type="hidden" name="dalej1" value="1">
butek
Czegos nie łapię (chyba nawet napewno) z tymi bazami. Dlaczego nie działa mi poniższy skrypt ? Nie aktualizuje mi bazy
<?php
error_reporting(E_ALL);
//error_reporting(0);
echo'
<HTML>
<head>
<meta http-equiv="Content-Language" content="pl">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Rekrutacja 2008 edycja</title>
</head>
<BODY>
<center><H1>Rekrutacja 2008 edycja</H1>
';

  1. <?php
  2. $url="xxx";
  3. $login="xxx";
  4. $haslo="xxx";
  5. $nazwa_bazy="xxx";
  6. $tabela="dane";
  7. if(!mysql_connect($url,$login,$haslo))
  8. {echo'błędy mysql<br>';}
  9. else
  10. {echo'połączono się z bazą';mysql_query('SET NAMES 'utf8'');mysql_select_db($nazwa_bazy);};
  11.  
  12.  
  13. $zapytanie_new="UPDATE dane SET nazwisko = nowenazwisko WHERE pesel=1234567 ";
  14. mysql_query($zapytanie_new);
  15.  
  16. //<a href="rekrutacja2008edycja.php">Powrót do spisu ćwiczeń</a>';
  17. echo'</center></BODY>
  18. </HTML>
  19. ';
  20. ?>
piotrooo89
przyczyn może być dużo,

  1. <?php
  2. $zapytanie_new="UPDATE dane SET nazwisko ="nowenazwisko" WHERE pesel=1234567 ";
  3. ?>


a może dodaj mysql_error i pokaż może coś zwraca.
butek
mysql_error() nie wyrzuca żadnych błędów
piotrooo89
jesteś pewny że nie update'uje tego? sprawdzałeś w np. phpmyadmin?
butek
Powinno być
  1. <?php
  2. $zapytanie_new="UPDATE dane SET nazwisko = 'nowenazwisko' WHERE pesel='1234567' ";
  3. ?>
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.