Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Problem z update
Forum PHP.pl > Forum > Przedszkole
mac1us
Witam. Mam problem ze skryptem uaktualniajacym dane w bazie. Czy wie ktos dlaczego to nie dziala? :
  1. <?php
  2. include "auth_admin.inc.php";
  3. include "conn.inc.php";
  4. ?>
  5. <html>
  6. <head>
  7. <title>Panel administracyjny</title>
  8. <style type="text/css">
  9. body {
  10.  background-color: #87CEFA;
  11. }  a img{
  12. border: none;}
  13. td { color:navy; font-weight: bold;}
  14. p {color:navy; font-weight: bold;}
  15. a
  16. {
  17. color: navy;
  18. }
  19.  
  20. a:hover
  21. {
  22. color: red;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <h1>Aktualizacja informacji o urzadzeniu</h1>
  28. <p>
  29. <?php $id=$_GET['id']; ?>
  30. <?php
  31. extract($_POST);
  32. if (isset($_POST['submit']) && $_POST['submit'] == "Uaktualnij") {
  33. $query_update = "UPDATE devices SET `unazwa`='" .
  34. $_POST['unazwa'] . "', `model`='" .
  35. $_POST['model'] . " WHERE `device_id`= '$id'";
  36. echo "<br>Aktualzacja zostala przeprowadzona pomyslnie";
  37. $result_update = mysql_query($query_update) ;
  38.  
  39. /*
  40. or die(mysql_error());
  41.  
  42.  */
  43.  
  44. $query = "SELECT model, unazwa FROM devices WHERE device_id = '" . $_GET['id'] . "'";
  45. $result = mysql_query($query)
  46. or die(mysql_error());
  47.  
  48. $row = mysql_fetch_array($result);
  49.  
  50. } else {
  51. $query = "SELECT model, unazwa FROM devices WHERE device_id = '" . $_GET['id'] . "'";
  52. $result = mysql_query($query)
  53. or die(mysql_error());
  54.  
  55. $row = mysql_fetch_array($result);
  56.  
  57. ?>
  58. <form action="update_device.php" method="post">
  59. id urzadzenia<input type="hidden" name="device_id" value="<?php echo $id ?>" /><br>
  60. Nazwa urzadzenia: <input type="text" name="unazwa"
  61. value="<?php echo $row['unazwa']; ?>" /><br>
  62. Model: <input type="text" name="model"
  63. value="<?php echo $row['model']; ?>" /><br>
  64. <input type="submit" name="submit" value="Uaktualnij"> &nbsp;
  65. <input type="button" value="Anuluj" onclick="history.go(-1);">
  66. </form>
  67. <?php
  68. }
  69. ?>
  70. </p>
  71. </body>
  72. </html>
Cezar708
a co Ci nie działa? Dokładniej prosimy.

Cytat
  1. <?php
  2. //...
  3. extract($_POST);
  4. //...
  5. ?>


brrrr nie rób tak na tablicach globalnych, to jest po niemalże emulacja register_globals ON
mac1us
Problem polega na tym, ze po zmianie danych i nacisnieciu Uaktualnij dane w bazie nie ulegaja zmianie.dodam ze polecenie
  1. <?phpecho '<pre>';var_export($_POST);echo '</pre>';?>
wyrzuca przykladowo:
  1. <?phparray ( 'device_id' => '7', 'unazwa' => 'Chromatograf cieczowy', 'model' => 'Beckman 24', 'submit' => 'Uaktualnij',)?>
tak wiec wszystko jes poprawnie przekazane tylko nie zapisuje sie do bazyKolejny progres w szukaniu bledu: wszystko sypie sie po nacisnieciu Uaktualnij: wrzucilem w echo zapytanie SQL i zwrocilo mi:
  1. <?phparray ( 'device_id' => '', 'unazwa' => 'Chromatograf cieczowy', 'model' => 'Beckman88', 'lab_id' => '1', 'submit' => 'Uaktualnij',)UPDATE devices SET `unazwa`='Chromatograf cieczowy', `model`='Beckman88', `lab_id`='1' WHERE `device_id`= ''?>
ma ktos jakis pomysl dlaczego znika device_id?hmm teraz to juz zupelnie nie wiem co sie dzieje poniewaz ten skrypt dziala poprawnie:
  1. <?phpif (isset($_POST['submit']) && $_POST['submit'] == &#092;"Uaktualnij\") { $query_update = \"UPDATE devices SET `unazwa`='\" .$_POST['unazwa'] . \"', `model`='\" .$_POST['model'] . \"', `lab_id`='\" .$_POST['lab_id'] . \"' WHERE `device_id`= '\" . $_POST['device_id'] . \"'\"; echo \"<br>Aktualzacja zostala przeprowadzona pomyslnie\"; $result_update = mysql_query($query_update) ; /* or die(mysql_error()); */ $query = \"SELECT * FROM devices WHERE device_id = '\" . $_POST['device_id'] . \"'\"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result);} else { $query = \"SELECT * FROM devices WHERE device_id = '\" . $_GET['id'] . \"'\"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result);?> <form action=\"update_device.php\" method=\"post\"> id urzadzenia<input type=\"hidden\" name=\"device_id\" value=\"<?php echo $row['device_id']; ?>\" /><br> Nazwa urzadzenia: <input type=\"text\" name=\"unazwa\" value=\"<?php echo $row['unazwa']; ?>\" /><br> Model: <input type=\"text\" name=\"model\" value=\"<?php echo $row['model']; ?>\" /><br> id laboratorium<input type=\"hidden\" name=\"lab_id\" value=\"<?php echo $row['lab_id']; ?>\" /><br> <input type=\"submit\" name=\"submit\" value=\"Uaktualnij\"> &nbsp; <input type=\"button\" value=\"Anuluj\" onclick=\"history.go(-1);\"> </form><?php}?>
a ten nie:
  1. <?phpsession_start();include &#092;"auth_admin.inc.php\";include \"conn.inc.php\";?><html><head><title>Panel administracyjny</title><style type=\"text/css\">body { background-color: #87CEFA;}  a img{border: none;}td { color:navy; font-weight: bold;}p {color:navy; font-weight: bold;}a{color: navy;}a:hover{color: red;}</style></head><body><h1>Aktualizacja informacji o użytkowniku</h1><p><?php $id = $_GET['id']; ?><?phpif (isset($_POST['submit']) && $_POST['submit'] == &#092;"Uaktualnij\") { $query_update = \"UPDATE users SET `login`='\" . $_POST['login'] . \"', `haslo`='\" . $_POST['haslo'] . \"', `imie`='\" . $_POST['imie'] . \"', `nazwisko`='\" . $_POST['nazwisko'] . \"', `email`='\" . $_POST['email'] . \"', `prawa`='\" . $_POST['prawa'] .\" WHERE `id_user`='\" . $_POST['id_user'] . \"'\"; echo \"<br>Aktualzacja zostala przeprowadzona pomyslnie\"; $result_update = mysql_query($query_update) ; /*  or die(mysql_error());  */ $query = \"SELECT * FROM users WHERE id_user = '\" . $_POST['id_user'] . \"'\"; $result = mysql_query($query)  or die(mysql_error()); $row = mysql_fetch_array($result); /* header(\"Refresh: 5; URL=edit_user.php\"); echo \"Informacje zostału uaktualnione! \" .  \"Zostajesz przekierowany do spisu uzytkownikow!<br>\"; echo \"(Jesli przegladarka nie obsluguje przekierowan, \" .  \"<a href=\"edit_user.php\">kliknij tutaj</a>)\"; die();  */} else { $query = \"SELECT * FROM users WHERE id_user = '\" . $_GET['id'] . \"'\"; $result = mysql_query($query)  or die(mysql_error()); $row = mysql_fetch_array($result);?> <form action=\"update_user.php\" method=\"post\"> Id klienta<input type=\"hidden\" name=\"id_user\" value=\"<?php echo $row['id_user'] ?>\" /><br> Nazwa użytkownika: <input type=\"text\" name=\"login\" value=\"<?php echo $row['login']; ?>\" /><br> Hasło: <input type=\"text\" name=\"haslo\" value=\"<?php echo $row['haslo']; ?>\" /><br> Imię: <input type=\"text\" name=\"imie\" value=\"<?php echo $row['imie']; ?>\" /><br> Nazwisko: <input type=\"text\" name=\"nazwisko\"  value=\"<?php echo $row['nazwisko']; ?>\" /><br>  Adres email: <input type=\"text\" name=\"email\"  value=\"<?php echo $row['email']; ?>\" /><br> Ranga: <input type=\"integer\" name=\"prawa\"  value=\"<?php echo $row['prawa']; ?>\" /><br> <input type=\"submit\" name=\"submit\" value=\"Uaktualnij\"> &nbsp; <input type=\"button\" value=\"Anuluj\" onclick=\"history.go(-1);\"> </form>  <?php echo &#092;"1:Superekspert\"?> <br>  <?php echo &#092;"2:Ekspert\" ?> <br>  <?php echo &#092;"3:Student?\"> <br><?php}?></p></body></html>
recian
Ja też mam problem z Updatem. Mianowicie nie chce mi zmienić/zaktualizować danych. Oto kod PHP:
  1. <?
  2. require('error_inc.php');
  3. require('config_inc.php');
  4.  
  5. if($REQUEST_METHOD=="POST"){
  6. if(isset($add)){
  7. if($login==""){
  8. die($err[3]);
  9. }
  10. if($password==""){
  11. die($err[3]);
  12. }
  13. if($password1==""){
  14. die($err[3]);
  15. }
  16. $login=htmlspecialchars($login);
  17. $password=htmlspecialchars($password);
  18. $password1=htmlspecialchars($password1);
  19. if($password!=$password1){
  20. die($err[1]);
  21. }
  22.  
  23. $query="update pass set login=\"".$login."\" , pass=\"".crypt($password,2)."\" where id=1 ";
  24. if(!@mysql_query($query)){
  25. die($err[4]);
  26. }
  27. }
  28. }
  29.  
  30. require('header_inc.php');
  31. ?>
  32. <form name="form1" method="post" action="">
  33. <table width="450" border=1 cellspacing=0 cellpadding=5 bordercolor="#FFFFFF">
  34. <tr>
  35. <td align="right">
  36. New login: 
  37. </td>
  38. <td align="right">
  39. <input type="text" name="login" size=40>
  40. </td>
  41. </tr>
  42. <tr>
  43. <td align="right">
  44. New password: 
  45. </td>
  46. <td align="right">
  47. <input type="password" name="password" size=40>
  48. </td>
  49. </tr>
  50. <tr>
  51. <td align="right">
  52. Confirm password: 
  53. </td>
  54. <td align="right">
  55. <input type="password" name="password1" size=40>
  56. </td>
  57. </tr>
  58. <tr>
  59. <td align="right">
  60. &nbsp;
  61. </td>
  62. <td align="right">
  63. <input type="submit" name="add" value="Add">
  64. </td>
  65. </tr>
  66. <tr>
  67. <td align="right">
  68. &nbsp;
  69. </td>
  70. <td align="right">
  71. <a href="<?print $HTTP_REFERER;?>">[ back ]</a> 
  72. </td>
  73. </tr>
  74. </table>
  75. </form>
  76. <?
  77. require('footer_inc.php');
  78. ?>


Dodam że wszystkie dane do bazy (hasło, host i nazwa bazy są prawidłowe). Proszę o szybką pomoc.
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.