Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Skrypt " Dodaj " w postgresie - nie dodaje danych do bazy
Forum PHP.pl > Forum > Przedszkole
gustafitka
Mam skrypcik napisany do bazy danych postgres który powinien dodawać dane.
Lecz jednak nie dodaje ... Zaden błąd nie wyskakuje. Nie wiem gdzie jest zle ,
kod czy baza .

Prosze o pomoc

Oto ten kod :
  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  4. <title>Formularz</title>
  5. </head>
  6. <body>
  7. <form method="post" action="dodaj.php">
  8. <table>
  9. <tbody>
  10. <tr>
  11. <br>
  12. Imię: <input name="imie" value="" size="20"
  13. maxlength="20" type="text">* <br>
  14. Nazwisko: <input name="nazwisko" value="" size="20"
  15. maxlength="20" type="text">* <br>
  16. Data urodzenia: <input name="data_ur" value=""
  17. size="10" maxlength="10" type="text">* 
  18. Wpisz dane nowego pracownika: <br>
  19. <input name="SUBMIT" value="Przeslij dane"
  20. type="submit">
  21. <p><br>
  22. <input value="Kasuj" dane="" type="reset">
  23. </p>
  24. </td>
  25. </tr>
  26. </tbody>
  27. </table>
  28. </form>
  29. <?php // Dopisanie danych z formularza do bazy
  30. if ((!$imie) or (!$nazwisko) or (!$data_ur))
  31. { echo "<cente?><b>
  32. Pola oznaczone * musz&scaron; byc podane! </b><br>";
  33. }
  34. // Dodanie znaków backslash przed:  (apostrof,cudzysłów, ukośnik)
  35. $imie = addslashes($imie);
  36. $nazwisko = addslashes($nazwisko);
  37. $data_ur = addslashes($data_ur);
  38. // zapisanie danych w tabeli
  39. // otworzenie bazy danych
  40. $polaczenie = pg_connect("dbname=Baza user=postgres port=5432 password=gustafitka host=localhost");
  41. if (!$polaczenie) { echo " Brak poł&scaron;czenia z baz&scaron;.<br>"; exit; }
  42. // wstawienie nowego rekordu 
  43. $wynik = pg_Exec($polaczenie, "insert into pracownicy (imie, nazwisko, data_ur) VALUES ('$imie', '$nazwisko', '$data_ur')");
  44. if (!$wynik) { echo "Bł&scaron;d podczas aktualizacji bazy"; exit;
  45. }
  46. if ($wynik):
  47. echo "Pracownik $NAZWISKO zostal dopisany do bazy";
  48. endif;
  49. ?>
  50. <!-- Koniec skryptu PHP -->
  51. </body>
  52. </html>



-------------------------
dodałem [tag] do tematu ponieważ
padły już odpowiedzi
na przyszłość pamiętaj, że dodawanie
[tag]u należy do Ciebie
~Cienki1980
batman
Po pierwsze:
  1. <?php
  2. $imie = $_POST['imie'];
  3. $nazwisko = $_POST['nazwisko'];
  4. $data_zatr = $_POST['data_zatr'];
  5. ?>


Po drugie
  1. <?php
  2. $wynik = pg_query($polaczenie, "insert into pracownicy (imie, nazwisko, data_ur) VALUES ('".$imie."', '".$nazwisko."', '".$data_zatr."')");
  3. ?>
gustafitka
Drugie poprawilem a z pierwszym nie wiem co mam zrobic , gdzie poprawic lub wstawic .
Potrzebuje nadal pomocy

Moze cos w mojej bazie jest nie tak

  1. CREATE TABLE pracownicy
  2. (
  3. id_pracownicy serial NOT NULL,
  4. id_dane int4 NOT NULL,
  5. imie varchar(200),
  6. nazwisko varchar(200),
  7. data_ur date,
  8. CONSTRAINT pracownicy_pkey PRIMARY KEY (id_pracownicy)
  9. )
  10. WITH OIDS;
  11. ALTER TABLE pracownicy OWNER TO postgres;
batman
  1. <?php
  2. // Dopisanie danych z formularza do bazy
  3. $imie = $_POST['imie'];
  4. $nazwisko = $_POST['nazwisko'];
  5. $data_ur = $_POST['data_zatr'];
  6. if ((!$imie) or (!$nazwisko) or (!$data_ur))
  7. ?>


Zmień też SQL-a na
  1. <?php
  2. $wynik = pg_query($polaczenie, "insert into pracownicy (imie, nazwisko, data_ur) VALUES ('".$imie."', '".$nazwisko."', '".$data_ur."')");
  3. ?>


W tabeli masz pole id_dane int4 NOT NULL. Pole to nie może przyjmować pustych wartości, więc najprawdopodobniej skrypt wypluwa błąd. Kolejna sprawa - jak podajesz datę?
Napisałeś, że błędy nie wyskakują, może masz wyłączone raportowanie błędów?
gustafitka
Dzieki dziala yahoo.gif
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.