Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: php+mysql - edycja danych
Forum PHP.pl > Forum > Przedszkole
Krzysiekpdf
Wydawalo sie proste i zrozumiale, a jednak nie dziala. Chcialbym edytowac dane w mysql z poziomu php. Zaadoptowalem do moich potrzeb kod z jednego ze znanych kursów mysql, a jednak nie dzia³a. Oto ca³y (nie wiem, gdzie jest bl±d) skrypt.

  1. <html>
  2. <head>
  3. <title>Modyfikacja - test</title>
  4. </head>
  5. <body>
  6. <table border=\"1\" width=\"98%\" cellspacing=\"0\" cellpadding=\"0\" bordercolorlight=\"#000000\">
  7. <tr>
  8. <td width=\"96%\" colspan=\"8\" bgcolor=\"#C0C0C0\">
  9. <p align=\"center\"><b><font size=\"2\">Dane osobowe</font></b></td>
  10. </tr>
  11. <tr>
  12. <td width=\"4%\" align=\"center\" bgcolor=\"#E0E0E0\">
  13. <p align=\"center\"><font size=\"2\">&nbsp;ID</font></td>
  14. <td width=\"18%\" align=\"center\" bgcolor=\"#E0E0E0\">
  15. <p align=\"center\"><font size=\"2\">Imiê</font></td>
  16. <td width=\"18%\" align=\"center\" bgcolor=\"#E0E0E0\"><font size=\"2\">Nazwisko</font></td>
  17. <td width=\"18%\" align=\"center\" bgcolor=\"#E0E0E0\"><font size=\"2\">Stopieñ</font></td>
  18. <td width=\"18%\" align=\"center\" bgcolor=\"#E0E0E0\"><font size=\"2\">Telefon</font></td>
  19. <td width=\"14%\" align=\"center\" bgcolor=\"#E0E0E0\"><font size=\"2\">Pokój</font></td>
  20. <td width=\"14%\" align=\"center\" bgcolor=\"#E0E0E0\"><font size=\"2\">WWW</font></td>
  21. <td width=\"6%\" align=\"center\" bgcolor=\"#E0E0E0\"><font size=\"2\">Modyfikuj</font></td>
  22. </tr>
  23.  
  24.  
  25. <?php
  26.  
  27. mysql_connect (&#092;"localhost\",\"xxxx\",\"xxxxxxx\");
  28.  
  29. $zapytanie = &#092;"SELECT * FROM zmk_pracownicy ORDER BY imie DESC\";
  30. $wykonaj = mysql_query ($zapytanie);
  31. while($wiersz=mysql_fetch_array ($wykonaj)) {
  32. echo &#092;" <tr>
  33. <td width=&#092;"4%\">\".$wiersz['id'].\"</td>
  34. <td width=&#092;"18%\">\".$wiersz['imie'].\"</td>
  35. <td width=&#092;"18%\">\".$wiersz['nazwisko'].\"</td>
  36. <td width=&#092;"18%\">\".$wiersz['stopien'].\"</td>
  37. <td width=&#092;"18%\">\".$wiersz['telefon'].\"</td>
  38. <td width=&#092;"14%\">\".$wiersz['pokoj'].\"</td>
  39. <td width=&#092;"14%\">\".$wiersz['www'].\"</td>
  40. <td width=&#092;"6%\"><b><a href=\"modyfikuj.php?stan=modyf&idmodyf=\".$wiersz['id'].\"\"> 
  41. Modyfikacja</a></b></td>
  42. </tr>&#092;";
  43. }
  44. if($_GET['stan']=='modyf') {
  45. $zapytanie = &#092;"SELECT * FROM zmk_pracowicy where id='$_GET[idmodyf]'\";
  46. $wykonaj = mysql_query ($zapytanie);
  47. $tablica = mysql_fetch_array($wykonaj);
  48. echo &#092;"<form method=\"get\" action=\"modyfikuj.php\">
  49. <div align=&#092;"center\">
  50. <center>
  51. <table border=&#092;"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  52. <tr>
  53. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Imie</font></td>
  54. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"imie\" value=\"\".$tablica['imie'].\"\" size=\"20\"></font></td>
  55. </tr>
  56. <tr>
  57. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
  58. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwisko\" value=\"\".$tablica['nazwisko'].\"\" size=\"20\"></font></td>
  59. </tr>
  60. <tr>
  61. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Stopien</font></td>
  62. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"stopien\" value=\"\".$tablica['stopien'].\"\" size=\"20\"></font></td>
  63. </tr>
  64. <tr>
  65. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Telefon</font></td>
  66. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"telefon\" value=\"\".$tablica['telefon'].\"\" size=\"20\"></font></td>
  67. </tr>
  68. <tr>
  69. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Pokój</font></td>
  70. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"pokoj\" value=\"\".$tablica['pokoj'].\"\" size=\"20\"></font></td>
  71. </tr>
  72. <tr>
  73. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">WWW</font></td>
  74. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"www\" value=\"\".$tablica['www'].\"\" size=\"20\"></font></td>
  75. </tr>
  76. <tr>
  77. <td width=&#092;"100%\" colspan=\"2\">
  78. <p align=&#092;"center\"><font size=\"2\" face=\"Verdana\"><input type=\"hidden\" name=\"modyfikuj\" value=\"$idmodyf\"><input type=\"submit\" value=\"Modyfikuj\" name=\"send\"></font></td>
  79. </tr>
  80. </table>
  81. </center>
  82. </div>
  83. </form>&#092;";
  84.  
  85. }
  86. elseif ($send=='Modyfikuj'){$zapytanie = &#092;"UPDATE dane SET imie='$imie', nazwisko='$nazwisko', stopien='$stopen', telefon='$telefon',pokoj='$pokoj',www='$www' WHERE id=$modyfikuj\";
  87. $wykonaj = mysql_query ($zapytanie);
  88. echo &#092;"<br>Dane poprawione<BR><a href=\"modyfikuj.php\">Obejrzyj poprawiona bazê</a>\";}
  89. else {
  90.  
  91. }
  92. ?>
  93. </table>
  94. </body>
  95. </html>


Dane wy¶wietlane s± prawid³owo, ale kiedy wciskam modyfikuj - przeladowuje strone i nic sie nie dzieje. W orginale bylo .php3 (serwer tego nie obsluguje). Rozumiem, ze odwoluje sie do tego samego pliku modyfikuj.php. Moze ktos poswieci mi troche czasu i spojrzy na to.
Probowalem tez zrobic to na 3 plikach: 1-wysyla id do drugiego, 2-wyswietla dane w formularzu z wiersza z id z poprzedniedo pliku i wysyla do trzeciego, ktory to modyfikuje i wyswietla poprawiona baze, ale na razie utknalem na etapie wyswietlania danych w drugim pliku. Z gory dziekuje za pomoc.
taktiken
proponowal bym sprawdzic najpierw czy cokolwiek jest przesylane.
tj. wstaw do linii gdzie wyswietlasz wynik zapytania np. zmienna $modyfikuj, zeby sie wyswietlila. Jezeli bedzie pusta - zmien kod zeby pracowal na zmiennej globalnej $_POST.
Twoj kod aktualizujacy moglby wygladac:
Kod
$zapytanie = "UPDATE dane SET imie='$_POST[imie]', nazwisko='$_POST[nazwisko]', stopien='$_POST[stopen]', telefon='$_POST[telefon]',pokoj='$_POST[pokoj]',www='$_POST[www]' WHERE id='$_POST[modyfikuj'";
$wykonaj = mysql_query ($zapytanie);


/J
Krzysiekpdf
Ale o wysylaniu na razie nie moze byc mowy, skoro nie wyswietla wybranych danych w formularzu (jak zreszta rowniez i samego formularza). Wyswietla tylko liste z danymi w tabelce z dodana kolumna Modyfikuj. Po kliknieciu strona sie przeladowuje, ale pokazuje to samo, co poprzednio. Jak to pokonac?
taktiken
Kod
if($stan=='modyf')

zmien na
Kod
if($_GET['stan']=='modyf')


a potem
Kod
SELECT * FROM zmk_pracowicy where id='$idmodyf'

na
Kod
SELECT * FROM zmk_pracowicy where id='$_GET[idmodyf]'

kolejna zmienna globalna
pamietaj o znakach ' ' dla wartosci w zapytaniach SQL
pozdro
j
Krzysiekpdf
Dziekuje. Zamienilem (tak, jak w formularzu powyzej). Po nacisnieciu Modyfikuj formularz jest juz pokazywany tyle, ze z pustymi kratkami (a mialy byc dane z wiersza z wybranegi id). Na gorze pojawia sie blad:

Kod
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /staff/httpd/html/phys/phptest/modyfikuj.php on line 48
taktiken
mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual
najprosciej:
Kod
while($wiersz=mysql_fetch_array ($wykonaj, MYSQL_NUM)) {

i poczytac manual smile.gif
J
Krzysiekpdf
Cytat(taktiken @ 2004-11-24 13:50:44)
mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual
najprosciej:
Kod
while($wiersz=mysql_fetch_array ($wykonaj, MYSQL_NUM)) {

i poczytac manual smile.gif
J

Poczytalem, zamienilem. Nic nie pomoglo znikl formularz sad.gif

No coz trudno sadsmiley02.gif
taktiken
Kod
echo "<form method=\"get\" action=\"modyfikuj.php\">

zmien na
Kod
echo "<form method=\"post\" action=\"modyfikuj.php\">

ja uzywam method "post" i ogolnie u mnie dziala (stad te $_POST i $GET w zaleznosci od form method)

druga rzecz:
Kod
name=\"imie\" value=\"".$tablica['imie']."\"

zmienilbym na:
Kod
name=\"imie\" value=\"$tablica['imie']\"


trzecia rzecz:
Kod
UPDATE dane SET imie='$imie', nazwisko='$nazwisko'

na:
Kod
UPDATE dane SET imie='$_POST[imie]', nazwisko='$_POST[nazwisko]'...


J
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.