Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z dodawaniem rekordu do bazy
Forum PHP.pl > Forum > Przedszkole
netH
Witam, mam pewien problem z dodawaniem rekordu do bazy, otóż po kliknięciu "wyślij" skrypt nie podejmuje żadnego działania... Będę wdzięczny jeśli ktoś ze chce to wytłumaczyć i pomóc, dzięki z góry!

  1. <?
  2.  
  3. if($send=='Wyślij') {
  4.  
  5. $dzien = ($_POST['dzien']);
  6. $miesiac = ($_POST['miesiac']);
  7. $rok = ($_POST['rok']);
  8. $czytresc = ($_POST['czytresc']);
  9. $czygaleria = ($_POST['czygaleria']);
  10. $galeria = ($_POST['galeria']);
  11. $tresck = ($_POST['tresck']);
  12. $trescd = ($_POST['trescd']);
  13.  
  14. $dodaj = "INSERT INTO `newsy` (`id`, `dzien`, `miesiac`, `rok`, `czytrescd`, `czygaleria`, `galeria`, `tresck`, `trescd`) VALUES ('', '.$dzien.', '.$miesiac.', '.$rok.', '.$czytresc.', '.$czygaleria.', '.$galeria.', '.$tresck.', '.$trescd.')";
  15.  
  16. $wykonaj = mysql_query ($dodawanie);
  17. $dodawanie = @mysql_query($dodaj);
  18. echo 'Wydarzenie <b> '.$dzien.' '.$miesiac.' '.$rok.'</b> zostało dodane poprawnie, znajduje sięono na stronie głównej twojego serwisu!';
  19. }
  20. else {
  21. echo 'Aby dodać nowe wydarzenie wypełnij formularz i zatwierdź znajdującym się pod nim przyciskiem. Po zatwierdzeniu, artykuł będzie wyświetlany na stronie głównej, jak najbardziej podlega możliwości usunięcia go bądź edycji w późniejszym czasie. Uważnie wypełnij każde z pól, aby uniknąć zbędnego edytowania!';
  22. echo '<br><br>';
  23. echo '<table border="0">';
  24. echo '<tr>';
  25. echo '<form action="index.php?akcja=aktualnosci_dodaj" method="post">';
  26. echo '<td width="257" valign="top">';
  27. echo '&nbsp;<b>Data wydarzenia</b><br><br>';
  28. echo '
  29. <select size="1" name="dzien">
  30. <option>1</option>
  31. <option>2</option>
  32. <option>3</option>
  33. <option>4</option>
  34. <option>5</option>
  35. <option>6</option>
  36. <option>7</option>
  37. <option>8</option>
  38. <option>9</option>
  39. <option>10</option>
  40. <option>11</option>
  41. <option>12</option>
  42. <option>13</option>
  43. <option>14</option>
  44. <option>15</option>
  45. <option>16</option>
  46. <option>17</option>
  47. <option>18</option>
  48. <option>19</option>
  49. <option>20</option>
  50. <option>21</option>
  51. <option>22</option>
  52. <option>23</option>
  53. <option>24</option>
  54. <option>25</option>
  55. <option>26</option>
  56. <option>27</option>
  57. <option>28</option>
  58. <option>29</option>
  59. <option>30</option>
  60. <option>31</option>
  61. </select>';
  62. echo '
  63. <select style="width: 110px;" size="1" name="miesiac">
  64. <option>stycznia</option>
  65. <option>lutego</option>
  66. <option>marca</option>
  67. <option>kwietnia</option>
  68. <option>maja</option>
  69. <option>czerwca</option>
  70. <option>lipca</option>
  71. <option>sierpnia</option>
  72. <option>września</option>
  73. <option>października</option>
  74. <option>listopada</option>
  75. <option>grudnia</option>
  76. </select>
  77. ';
  78. echo '
  79. <select size="1" name="rok">
  80. <option>2008</option>
  81. <option>2009</option>
  82. <option>2010</option>
  83. <option>2011</option>
  84. <option>2012</option>
  85. </select>
  86. ';
  87. echo '<br><br><br>';
  88. echo '&nbsp;<b>Ustawienia treści</b><br><br>';
  89. echo '
  90. <select size="1" name="czytresc">
  91. <option>Krótka</option>
  92. <option>Długa</option>
  93. </select>';
  94. echo '<br><br><br>';
  95. echo '&nbsp;<b>Ustawienia galerii</b><br><br>';
  96. echo '
  97. <select size="1" name="czygaleria">
  98. <option>Tak</option>
  99. <option>Nie</option>
  100. </select>';
  101. echo '&nbsp;<input style="width: 176px;" type="text" value="Numer galerii" name="galeria"></input>';
  102. echo '</td>';
  103. echo '<td valign="top">';
  104. echo '&nbsp;<b>Treść krótka</b> (300 znaków)<br><br>';
  105. echo '<textarea style="width: 595px; height: 150px;" name="tresck"></textarea>';
  106. echo '<br><br>';
  107. echo '&nbsp;<b>Treść długa</b> (nieograniczona ilość znaków)<br><br>';
  108. echo '<textarea style="width: 595px; height: 250px;" name="trescd"></textarea>';
  109. echo '<br><br><input name="wybierz" type="submit" value="Wyślij" name="send">';
  110. echo '</form>';
  111. echo '</td>';
  112. echo '</tr>';
  113. echo '</table>';
  114. }
  115.  
  116. ?>
motyl-pl
Wsadź to w [PHP] a nie Code to raz, a dwa po co zmienne post trzymasz w nawiasach ; o ?
netH
Poprawione winksmiley.jpg

  1. <?
  2.  
  3. if($send=='Wyślij') {
  4.  
  5. $dzien = $_POST['dzien'];
  6. $miesiac = $_POST['miesiac'];
  7. $rok = $_POST['rok'];
  8. $czytresc = $_POST['czytresc'];
  9. $czygaleria = $_POST['czygaleria'];
  10. $galeria = $_POST['galeria'];
  11. $tresck = $_POST['tresck'];
  12. $trescd = $_POST['trescd'];
  13.  
  14. $dodaj = "INSERT INTO `newsy` (`id`, `dzien`, `miesiac`, `rok`, `czytrescd`, `czygaleria`, `galeria`, `tresck`, `trescd`) VALUES ('', '$dzien', '$miesiac', '$rok', '$czytresc', '$czygaleria', '$galeria', '$tresck', '.$trescd.')";
  15.  
  16. $wykonaj = mysql_query ($dodawanie);
  17. $dodawanie = @mysql_query($dodaj);
  18. echo 'Wydarzenie <b> '.$dzien.' '.$miesiac.' '.$rok.'</b> zostało dodane poprawnie, znajduje sięono na stronie głównej twojego serwisu!';
  19. }
  20. else {
  21. echo 'Aby dodać nowe wydarzenie wypełnij formularz i zatwierdź znajdującym się pod nim przyciskiem. Po zatwierdzeniu, artykuł będzie wyświetlany na stronie głównej, jak najbardziej podlega możliwości usunięcia go bądź edycji w późniejszym czasie. Uważnie wypełnij każde z pól, aby uniknąć zbędnego edytowania!';
  22. echo '<br><br>';
  23. echo '<table border="0">';
  24. echo '<tr>';
  25. echo '<form action="index.php?akcja=aktualnosci_dodaj" method="post">';
  26. echo '<td width="257" valign="top">';
  27. echo ' <b>Data wydarzenia</b><br><br>';
  28. echo '
  29. <select size="1" name="dzien">
  30. <option>1</option>
  31. <option>2</option>
  32. <option>3</option>
  33. <option>4</option>
  34. <option>5</option>
  35. <option>6</option>
  36. <option>7</option>
  37. <option>8</option>
  38. <option>9</option>
  39. <option>10</option>
  40. <option>11</option>
  41. <option>12</option>
  42. <option>13</option>
  43. <option>14</option>
  44. <option>15</option>
  45. <option>16</option>
  46. <option>17</option>
  47. <option>18</option>
  48. <option>19</option>
  49. <option>20</option>
  50. <option>21</option>
  51. <option>22</option>
  52. <option>23</option>
  53. <option>24</option>
  54. <option>25</option>
  55. <option>26</option>
  56. <option>27</option>
  57. <option>28</option>
  58. <option>29</option>
  59. <option>30</option>
  60. <option>31</option>
  61. </select>';
  62. echo '
  63. <select style="width: 110px;" size="1" name="miesiac">
  64. <option>stycznia</option>
  65. <option>lutego</option>
  66. <option>marca</option>
  67. <option>kwietnia</option>
  68. <option>maja</option>
  69. <option>czerwca</option>
  70. <option>lipca</option>
  71. <option>sierpnia</option>
  72. <option>września</option>
  73. <option>października</option>
  74. <option>listopada</option>
  75. <option>grudnia</option>
  76. </select>
  77. ';
  78. echo '
  79. <select size="1" name="rok">
  80. <option>2008</option>
  81. <option>2009</option>
  82. <option>2010</option>
  83. <option>2011</option>
  84. <option>2012</option>
  85. </select>
  86. ';
  87. echo '<br><br><br>';
  88. echo ' <b>Ustawienia treści</b><br><br>';
  89. echo '
  90. <select size="1" name="czytresc">
  91. <option>Krótka</option>
  92. <option>Długa</option>
  93. </select>';
  94. echo '<br><br><br>';
  95. echo ' <b>Ustawienia galerii</b><br><br>';
  96. echo '
  97. <select size="1" name="czygaleria">
  98. <option>Tak</option>
  99. <option>Nie</option>
  100. </select>';
  101. echo ' <input style="width: 176px;" type="text" value="Numer galerii" name="galeria"></input>';
  102. echo '</td>';
  103. echo '<td valign="top">';
  104. echo ' <b>Treść krótka</b> (300 znaków)<br><br>';
  105. echo '<textarea style="width: 595px; height: 150px;" name="tresck"></textarea>';
  106. echo '<br><br>';
  107. echo ' <b>Treść długa</b> (nieograniczona ilość znaków)<br><br>';
  108. echo '<textarea style="width: 595px; height: 250px;" name="trescd"></textarea>';
  109. echo '<br><br><input name="wybierz" type="submit" value="Wyślij" name="send">';
  110. echo '</form>';
  111. echo '</td>';
  112. echo '</tr>';
  113. echo '</table>';
  114. }
  115.  
  116. ?>


Jeżeli to miałoby coś wyjaśnić, to strona wygląda w ten sposób: KLIK
blade-mrn
Po pierwsze wydaje mi się że przy zapytaniu do bazy INSERT INTO nazwa tabeli nie powinna być w apostrofach.
Po drugie to:
$wykonaj = mysql_query ($dodawanie);
$dodawanie = @mysql_query($dodaj);
Powinno być chyba odwrotnie bo teraz przypisujesz do $wykonaj coś co otrzymuje wartość dopiero później nie wspominając już o tym że robisz dwa razy to samo.
Najpierw $dodawanie = $dodaj a potem $wykonaj = $dodawanie. Nie prościej zrobić $wykonaj = $dodaj? No chyba że się mylę blinksmiley.gif
netH
Wydaje mi się, że nie tu tkwi problem, a tych dwóch linijek zapomniałem usunąć po ostatniej modyfikacji kiedy próbowałem dodać rekord w inny sposób...
robertinho
Daj na początku

  1. $send = $_POST['send];
netH
dalej nic, formularz niby jest przekierowany do pliku z ktorego ma sie odpalic skrypt ale jakby go calkowicie pomijal...
melkorm
  1. error_reporting(E_ALL + E_STRICT);
  2. ini_set('display_errors',1);
  3. var_dump($_POST);


Daj to na początku skryptu i wyrzuć te małpy z kodu, to nie ZOO.
netH
w koncu jakies konkrety winksmiley.jpg

Cytat
array(0) { }
Notice: Undefined variable: send in F:\WebServ\httpd-users\zskomorno\administracja\aktualnosci_dodaj.php on line 7


czyli

Cytat
if($send=='Wyślij') {


Teraz kod wygląda tak:

  1. <?
  2.  
  3. error_reporting(E_ALL + E_STRICT);
  4. ini_set('display_errors',1);
  5. var_dump($_POST);
  6.  
  7. if(isset($_POST['send'])) {
  8.  
  9. $send = $_POST['send'];
  10. $dzien = $_POST['dzien'];
  11. $miesiac = $_POST['miesiac'];
  12. $rok = $_POST['rok'];
  13. $czytresc = $_POST['czytresc'];
  14. $czygaleria = $_POST['czygaleria'];
  15. $galeria = $_POST['galeria'];
  16. $tresck = $_POST['tresck'];
  17. $trescd = $_POST['trescd'];
  18.  
  19. $dodaj = "INSERT INTO newsy (`id`, `dzien`, `miesiac`, `rok`, `czytrescd`, `czygaleria`, `galeria`, `tresck`, `trescd`) VALUES ('', '$dzien', '$miesiac', '$rok', '$czytresc', '$czygaleria', '$galeria', '$tresck', '$trescd')";
  20. $dodawanie = mysql_query($dodaj);
  21.  
  22. echo 'Wydarzenie <b> '.$dzien.' '.$miesiac.' '.$rok.'</b> zostało dodane poprawnie, znajduje sięono na stronie głównej twojego serwisu!';
  23. }
  24. else {
  25. echo 'Aby dodać nowe wydarzenie wypełnij formularz i zatwierdź znajdującym się pod nim przyciskiem. Po zatwierdzeniu, artykuł będzie wyświetlany na stronie głównej, jak najbardziej podlega możliwości usunięcia go bądź edycji w późniejszym czasie. Uważnie wypełnij każde z pól, aby uniknąć zbędnego edytowania!';
  26. echo '<br><br>';
  27. echo '<table border="0">';
  28. echo '<tr>';
  29. echo '<form action="index.php?akcja=aktualnosci_dodaj" method="post">';
  30. echo '<td width="257" valign="top">';
  31. echo ' <b>Data wydarzenia</b><br><br>';
  32. echo '
  33. <select size="1" name="dzien">
  34. <option>1</option>
  35. <option>2</option>
  36. <option>3</option>
  37. <option>4</option>
  38. <option>5</option>
  39. <option>6</option>
  40. <option>7</option>
  41. <option>8</option>
  42. <option>9</option>
  43. <option>10</option>
  44. <option>11</option>
  45. <option>12</option>
  46. <option>13</option>
  47. <option>14</option>
  48. <option>15</option>
  49. <option>16</option>
  50. <option>17</option>
  51. <option>18</option>
  52. <option>19</option>
  53. <option>20</option>
  54. <option>21</option>
  55. <option>22</option>
  56. <option>23</option>
  57. <option>24</option>
  58. <option>25</option>
  59. <option>26</option>
  60. <option>27</option>
  61. <option>28</option>
  62. <option>29</option>
  63. <option>30</option>
  64. <option>31</option>
  65. </select>';
  66. echo '
  67. <select style="width: 110px;" size="1" name="miesiac">
  68. <option>stycznia</option>
  69. <option>lutego</option>
  70. <option>marca</option>
  71. <option>kwietnia</option>
  72. <option>maja</option>
  73. <option>czerwca</option>
  74. <option>lipca</option>
  75. <option>sierpnia</option>
  76. <option>września</option>
  77. <option>października</option>
  78. <option>listopada</option>
  79. <option>grudnia</option>
  80. </select>
  81. ';
  82. echo '
  83. <select size="1" name="rok">
  84. <option>2008</option>
  85. <option>2009</option>
  86. <option>2010</option>
  87. <option>2011</option>
  88. <option>2012</option>
  89. </select>
  90. ';
  91. echo '<br><br><br>';
  92. echo ' <b>Ustawienia treści</b><br><br>';
  93. echo '
  94. <select size="1" name="czytresc">
  95. <option>Krótka</option>
  96. <option>Długa</option>
  97. </select>';
  98. echo '<br><br><br>';
  99. echo ' <b>Ustawienia galerii</b><br><br>';
  100. echo '
  101. <select size="1" name="czygaleria">
  102. <option>Tak</option>
  103. <option>Nie</option>
  104. </select>';
  105. echo ' <input style="width: 176px;" type="text" value="Numer galerii" name="galeria"></input>';
  106. echo '</td>';
  107. echo '<td valign="top">';
  108. echo ' <b>Treść krótka</b> (300 znaków)<br><br>';
  109. echo '<textarea style="width: 595px; height: 150px;" name="tresck"></textarea>';
  110. echo '<br><br>';
  111. echo ' <b>Treść długa</b> (nieograniczona ilość znaków)<br><br>';
  112. echo '<textarea style="width: 595px; height: 250px;" name="trescd"></textarea>';
  113. echo '<br><br><input name="wybierz" type="submit" value="Wyślij" name="send">';
  114. echo '</form>';
  115. echo '</td>';
  116. echo '</tr>';
  117. echo '</table>';
  118. }
  119.  
  120. ?>


a efekt tak: KLIK

------------------------------------------------------------------------------------------

Troche poglowkowalem i zmienilem strategie, kod wyglada tak:

  1. <?
  2.  
  3. error_reporting(E_ALL + E_STRICT);
  4. ini_set('display_errors',1);
  5. var_dump($_POST);
  6.  
  7. $wynik = $_GET['wynik'];
  8.  
  9. if(isset($_GET['wynik']) && $_GET['wynik'] == 'wpis') {
  10.  
  11. $dzien = $_POST['dzien'];
  12. $miesiac = $_POST['miesiac'];
  13. $rok = $_POST['rok'];
  14. $czytresc = $_POST['czytresc'];
  15. $czygaleria = $_POST['czygaleria'];
  16. $galeria = $_POST['galeria'];
  17. $tresck = $_POST['tresck'];
  18. $trescd = $_POST['trescd'];
  19.  
  20. $dodaj = "INSERT INTO newsy (`id`, `dzien`, `miesiac`, `rok`, `czytrescd`, `czygaleria`, `galeria`, `tresck`, `trescd`) VALUES ('', '$dzien', '$miesiac', '$rok', '$czytresc', '$czygaleria', '$galeria', '$tresck', '$trescd')";
  21. $dodawanie = mysql_query($dodaj);
  22.  
  23. echo 'Wydarzenie z dnia <b> '.$dzien.' '.$miesiac.' '.$rok.'</b> zostało dodane poprawnie, znajduje się ono na stronie głównej twojego serwisu! <b>[ <a href="index.php?akcja=aktualnosci_lista">Lista wydarzeń</a> ]</b>';
  24. }
  25. elseif($_GET['wynik'] == '') {
  26. .............TU JEST TEN CALY FORMULARZ..........
  27.  
  28. }
  29. ?>


a mimo to dalej mam takie bledy:

Cytat
array(0) { }
Notice: Undefined index: wynik in F:\WebServ\httpd-users\zskomorno\administracja\aktualnosci_dodaj.php on line 7

Notice: Undefined index: wynik in F:\WebServ\httpd-users\zskomorno\administracja\aktualnosci_dodaj.php on line 25


czyli

Cytat
7. $wynik = $_GET['wynik'];
...
25. elseif($_GET['wynik'] == '') {


ktos wie dlaczego?

------------------------------------------------------------------------------------------

Do zamknięcia, sam rozwiązałem problem... dzięki za pomoc winksmiley.jpg
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.