Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]edytowanie danych z bazy
gagatek
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 18.02.2008

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


mam problem, mam bazę z filmami i chciałem zrobić edycję wybranego filmu, jestem początkujący. Od razu przyznaje się że trochę zamieszałem. Ale opisze o co chodzi. Klikając na link edytuj film, otwiera mi się skrypt php edytuj.php w którym mam:
  1. <?php session_start();
  2. include('config.php');
  3. include('function.php');
  4. top("Edytuj film");
  5. error_reporting(E_ALL ^ E_NOTICE);
  6.  
  7. menu();
  8.  
  9.  
  10. $id =$_POST['id'];
  11. $query=" SELECT * FROM filmy WHERE ID = $id";
  12. $result=mysql_query($query);
  13. $num=mysql_numrows($result);
  14.  
  15.  
  16. var_dump($query);
  17.  
  18. $i=0;
  19. while ($i < $num) {
  20. $tytul_polski=mysql_result($result,$i,"tytul_polski");
  21. $tytul_oryginalny=mysql_result($result,$i,"tytul_oryginalny");
  22. $REZYSER=mysql_result($result,$i,"REZYSER");
  23. $SCENARIUSZ=mysql_result($result,$i,"SCENARIUSZ");
  24. $ROK_PRODUKCJI=mysql_result($result,$i,"ROK_PRODUKCJI");
  25. $CZAS_TRWANIA=mysql_result($result,$i,"CZAS_TRWANIA");
  26. $CENA=mysql_result($result,$i,"CENA");
  27. $OPIS=mysql_result($result,$i,"OPIS");
  28.  
  29.  
  30. ++$i;
  31. }
  32. ?>
  33.  
  34. <div id="formularz">
  35. <form method="post" action="edytuj.php">
  36. <table>
  37. <tr class="tlo-b"><td>Podaj ID filmu:</td>
  38. <td> <input type="text" name="id" value="<? echo $id; ?>"></td></tr>
  39. <tr class="tlo-b"><td>Tytul oryginalny:</td>
  40. <td><input type="text" name="ud_tytul_oryginalny" value="<? echo $tytul_oryginalny; ?>"/></td></tr>
  41. <tr class="tlek"><td>Tytul polski:</td>
  42. <td><input type="text" name="ud_tytul_polski" value="<? echo $tytul_polski; ?>"/></td></tr>
  43. <tr class="tlo-b"><td>Reżyser:</td>
  44. <td><input type="text" name="ud_REZYSER" value="<? echo $REZYSER; ?>" /></td></tr>
  45. <tr class="tlo-b"><td>Wytwórnia:</td>
  46. <td><input type="text" name="ud_SCENARIUSZ" value="<? echo $SCENARIUSZ; ?>" /></td></tr>
  47. <tr class="tlek"><td>Rok produkcji:</td>
  48. <td><input type="text" name="ud_ROK_PRODUKCJI" value="<? echo $ROK_PRODUKCJI; ?>"/></span></td></tr>
  49. <tr class="tlo-b"><td>Czas trwania:</td>
  50. <td><input type="text" name="ud_CZAS_TRWANIA" value="<? echo $CZAS_TRWANIA; ?>"/></td></tr>
  51. <tr class="tlo-b"><td>Ilość sztuk:</td>
  52. <td><input type="text" name="ud_CENA" value="<? echo $CENA; ?>"/></td></tr>
  53. <tr class="tlo-b"><td>Gatunek:</td>
  54. <td><select name="gatunek">
  55. <?php pobierzGatunek(); ?>
  56. </select></td></tr>
  57. <tr class="tlo-b"><td>Opis:</td>
  58. <td><textarea cols="35" rows="10" name="ud_opis"><? echo $OPIS; ?></textarea> </td></tr>
  59. <tr><td colspan="2" align="center"><input type="submit" value="Zmień" /></td></tr>
  60. </table></form>
  61. </div>
  62. <?php
  63.  
  64. $id=$_POST['id'];
  65. $ud_tytul_polski=$_POST['ud_tytul_polski'];
  66. $ud_tytul_oryginalny=$_POST['ud_tytul_oryginalny'];
  67. $ud_REZYSER=$_POST['ud_REZYSER'];
  68. $ud_SCENARIUSZ=$_POST['ud_SCENARIUSZ'];
  69. $ud_ROK_PRODUKCJI=$_POST['ud_ROK_PRODUKCJI'];
  70. $ud_CZAS_TRWANIA=$_POST['ud_CZAS_TRWANIA'];
  71. $ud_CENA=$_POST['ud_CENA'];
  72.  
  73. $query="UPDATE filmy SET tytul_polski='$ud_tytul_polski', tytul_oryginalny='$ud_tytul_oryginalny', REZYSER='$ud_REZYSER', SCENARIUSZ='$ud_SCENARIUSZ', ROK_PRODUKCJI='$ud_ROK_PRODUKCJI', CZAS_TRWANIA='$ud_CZAS_TRWANIA', CENA='$ud_CENA' WHERE ID = '$id'";
  74. mysql_query($query);
  75.  
  76. var_dump($query);
  77. echo " Rekord zaktualizowany ";
  78.  
  79. down();
  80. ?>
  81.  

Po wejściu do edytuj film wyskakuje nad formularzem:
  1. Warning: mysql_numrows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\xxx\administrator\edytuj.php on line 13
  2. string(32) " SELECT * FROM filmy WHERE ID = "


Pluje się bo nie było podanego ID filmu do edycji. Po wpisaniu jakiegokolwiek ID do formularza są prawidłowo uzupełniane dane z bazy. I tu mam już mały problem, bo nie wiem za bardzo jak i co mam zmienić żeby ten błąd nie wyskakiwał.
I kolejnym problemem jest to ze jak już zmienię coś w tych inputach i kliknę "Zmień" to dane nie zostają zmodyfikowane, tylko są pobierane z bazy jeszce raz bez zmiany.

Bardzo prosze o Waszą pomoc....
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Po pierwsze:
nie: error_reporting(E_ALL ^ E_NOTICE);
a: error_reporting(E_ALL);

Po drugie: skoro klikasz na link z id filmu, to
nie: $id =$_POST['id'];
a: $id =$_GET['id'];
A najlepiej
$id =$_REQUEST['id'];

Bo raz id pobierasz z get a raz z post
Go to the top of the page
+Quote Post
K0nio
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

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


a czy funkcja nie powinna się nazywać mysql_num_rows() zamiast mysql_numrows ? Bo chyba zadziałała widząc po błędzie , przepraszam, że wcinam się ale kto pyta nie błądzi


edit: google od razu poprawiało mysql_numrows więc sadziłem, że to literówka autora postu ale fakt manual przede wszystkim. Dzięki za wyjaśnienie

Ten post edytował K0nio 2.12.2011, 11:49:31
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale kto pyta nie błądzi
Ale ten kto pyta mógłby od czasu do czasu też zaglądać do manuala zamiast pytac.
http://pl2.php.net/manual/en/function.mysql-num-rows.php
Cytat
For backward compatibility, the following deprecated alias may be used: mysql_numrows()
Go to the top of the page
+Quote Post
gagatek
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 18.02.2008

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


nie klikam na link z filmu tylko w pole id podaje id filmu, to będzie zmienione bo będzie wybierane z listy rozwijanej, ale narazie chce się ogólnie uporać z tym żeby te dane zostały jednak zmienione w bazie. Przede wszystkim potrzebuje pomocy żeby po zmianie wartości w inputach były one zapisywane w bazie... Nie wiem co jest nie tak, bo jak cokolwiek zmienię i kliknę "zmień" to var_dump($query); wyswietla "UPDATE filmy SET ..." z wartościami zmienionymi, ale nie zostają one zapisane w bazie a do inputów ładują się spowrotem wartości które były pobrane przed kliknieciem "zmien"...

czy mógłby ktoś pomóc?
Go to the top of the page
+Quote Post
mfgmg
post
Post #6





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 5.12.2011

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


Witam, przepraszam, że podpinam się do tematu ale mam podobny problem jak kolega
Go to the top of the page
+Quote Post
gagatek
post
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 18.02.2008

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


czy ktoś może pomóc?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 10:24