Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dopisanie rekordu do bazy
Forum PHP.pl > Forum > Przedszkole
eurosoft
Witam, gdzieś mam babola i nie mogę sobie poradzić z odnalezieniem go.
PROBLEM: nie dodaje mi rekordu do bazy.
Oto mój kod:
  1. <BODY BGCOLOR=#658634>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  6. <link rel="stylesheet" href="default.css" type="text/css" />
  7. </head>
  8.  
  9. <?php
  10. include 'config.php'; // połączenie się z bazą danych
  11. $tabela = 'plan';
  12.  
  13. /* zapytanie do konkretnej tabeli */
  14. $wynik = mysql_query("SELECT * FROM plan")
  15. or die('Błąd zapytania');
  16.  
  17.  
  18.  
  19. /*
  20. wyświetlamy wyniki, sprawdzamy,
  21. czy zapytanie zwróciło wartość większą od 0
  22. */
  23. if(mysql_num_rows($wynik) > 0) {
  24. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  25.  
  26. echo "<form action=planform.php method=post>";
  27.  
  28. while($r = mysql_fetch_array($wynik))
  29. {
  30. echo "<b>ROK ŁOWIECKI:</b>&nbsp;";
  31. echo "<th><Input value=$r[1] size=1 name=data_od></th>&nbsp;/&nbsp;";
  32. echo "<th><Input value=$r[2] size=1 name=data_do></th>&nbsp;&nbsp;";
  33. echo "<th><b>Obwód numer:&nbsp;</b><input value='$r[121]' size=1 name=nr_obw></th>";
  34. echo "<table border=1 cellspacing=0 cellpadding=1 bgcolor=#ADB79E bordercolor=#FFFFFF>";
  35. echo "<th>Gatunki Zwierząt Łownych</th>";
  36. echo "<th>Odstrzał szt.</th>";
  37. echo "<th>Odłów szt.</th>";
  38. echo "<tr>";
  39. echo "<td><input value='1.Łosie RAZEM' name=LosRazem readonly disabled></td>";
  40. echo "<td><input value=$r[3] size=1 name=OdstrzalLosRAZEM></td>";
  41. echo "<td><input value=$r[7] size=1 name=OdlowLosRAZEM></td>";
  42. echo "</tr>";
  43. echo "<tr>";
  44. echo "<td><input value=Byk size=12 name=LosByk readonly disabled></td>";
  45. echo "<td><input value=$r[4] size=1 name=OdstrzalLosByk></td>";
  46. echo "<td><input value=$r[8] size=1 name=OdlowLosByk></td>";
  47. echo "</tr>";
  48. echo "<tr>";
  49. echo "<td><input value=Klępa size=12 name=LosKlempa readonly disabled></td>";
  50. echo "<td><input value=$r[5] size=1 name=OdstrzalLosKlempa></td>";
  51. echo "<td><input value=$r[9] size=1 name=OdlowLosKlempa></td>";
  52. echo "</tr>";
  53. echo "<tr>";
  54. echo "<td><input value=Łoszak size=12 name=LosLoszak readonly disabled></td>";
  55. echo "<td><input value=$r[6] size=1 name=OdstrzalLosLoszak></td>";
  56. echo "<td><input value=$r[10] size=1 name=OdlowLosLoszak></td>";
  57. echo "</tr>";
  58. echo "</table>";
  59. echo "<input type=submit value=Zatwierdź>";
  60. echo "</form>";
  61. }
  62. }
  63.  
  64. $data_od = $_POST['data_od'];
  65. $data_do = $_POST['data_do'];
  66. $nr_obw = $_POST['nr_obw'];
  67. $OdstrzalLosRazem = $_POST['OdstrzalLosRazem'];
  68. $OdlowLosRazem = $POST['OdlowLosRazem'];
  69. $OdstrzalLosByk = $POST['OdstrzalLosByk'];
  70. $OdlowLosByk = $POST['OdlowLosByk'];
  71.  
  72. if($data_od and $data_do and $nr_obw)
  73. {
  74.  
  75. $ins = @mysql_query("INSERT INTO $tabela SET
  76. data_od='$data_od',
  77. data_do='$data_do',
  78. OdstrzalLosRazem='$OdstrzalLosRazem',
  79. OdlowLosRazem='$OdlowLosRazem',
  80. OdstrzalLosByk='$OdstrzalLosByk',
  81. OdlowLosByk='$OdlowLosByk',
  82. nr_obw='$nr_obw'");
  83.  
  84. if($ins) echo "Twój wpis został zarejestrowany.";
  85. }
  86. else
  87. { echo "Musisz wypełnić wymagane pola.";
  88.  
  89. mysql_close($connection);
  90. }
  91.  
  92. ?>
  93.  
  94.  
Daiquiri
Usuń @ przed mysql_query i zobacz jaki jest błąd.
ADeM
Nie ukrywaj błędów.

  1. $ins = @mysql_query("INSERT INTO $tabela SET
  2. data_od='$data_od',
  3. data_do='$data_do',
  4. OdstrzalLosRazem='$OdstrzalLosRazem',
  5. OdlowLosRazem='$OdlowLosRazem',
  6. OdstrzalLosByk='$OdstrzalLosByk',
  7. OdlowLosByk='$OdlowLosByk',
  8. nr_obw='$nr_obw'");

zamień na:
  1. $ins = mysql_query("INSERT INTO $tabela SET
  2. data_od='$data_od',
  3. data_do='$data_do',
  4. OdstrzalLosRazem='$OdstrzalLosRazem',
  5. OdlowLosRazem='$OdlowLosRazem',
  6. OdstrzalLosByk='$OdstrzalLosByk',
  7. OdlowLosByk='$OdlowLosByk',
  8. nr_obw='$nr_obw'") or die( mysql_error() );

I pokaż co wywala.
eurosoft
Notice: Undefined variable: POST in .../planform.php on line 74

Notice: Undefined variable: POST in .../planform.php on line 75

Notice: Undefined variable: POST in .../planform.php on line 76

Notice: Undefined variable: OdstrzalLosRazem in .../planform.php on line 85

Notice: Undefined variable: OdlowLosRazem in .../planform.php on line 86
ADeM
Ech... Nie wysłałeś formularza.
Przed przypisaniem do zmiennych danych z POST sprawdź najpierw czy one istnieją ( isset() ).
eurosoft
Przepraszam czy mógłbyś mi to "dosadniej" wytłumaczyć? Jestem raczkujący w tej dziedzinie, a cieżko doczytać takie szczegóły....
ADeM
Np w 64 linijce odwołujesz się do $_POST['data_od'], które nie istnieje. Będzie istniało dopiero po wysłaniu formularza. Najpierw więc musisz sprawdzić czy formularz został wysłany i tylko w odpowiednim przypadku wstawić dane do bazy.
  1. if( isset( $_POST[ 'data_od' ] ) ) {
  2. $data_od = $_POST['data_od'];
  3. $data_do = $_POST['data_do'];
  4. $nr_obw = $_POST['nr_obw'];
  5. $OdstrzalLosRazem = $_POST['OdstrzalLosRazem'];
  6. $OdlowLosRazem = $POST['OdlowLosRazem'];
  7. $OdstrzalLosByk = $POST['OdstrzalLosByk'];
  8. $OdlowLosByk = $POST['OdlowLosByk'];
  9.  
  10. if($data_od and $data_do and $nr_obw)
  11. {
  12.  
  13. $ins = mysql_query("INSERT INTO $tabela SET
  14. data_od='$data_od',
  15. data_do='$data_do',
  16. OdstrzalLosRazem='$OdstrzalLosRazem',
  17. OdlowLosRazem='$OdlowLosRazem',
  18. OdstrzalLosByk='$OdstrzalLosByk',
  19. OdlowLosByk='$OdlowLosByk',
  20. nr_obw='$nr_obw'");
  21.  
  22. if($ins) echo "Twój wpis został zarejestrowany.";
  23. }
  24. else
  25. { echo "Musisz wypełnić wymagane pola.";
  26.  
  27. mysql_close($connection);
  28. }
  29. }
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.