Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP] Formularz dodający rekordy do bazy danych
Forum PHP.pl > Forum > Przedszkole
Zielony91
Witam, zabawę z php dopiero zaczynam, także proszę o wyrozumiałość.

Utworzyłem bazę danych, a w niej tabelę poprzez polecenie:
  1. CREATE TABLE `tabela_testowa` (
  2. `nazwa_kolumny` VARCHAR( 20 ) NOT NULL
  3. )


Plik index.php wygląda następująco:
  1. <?php
  2.  
  3. // informacje na temat bazy
  4. $host = "xx";
  5. $user = "xx";
  6. $password = "xx";
  7. $dbName = "xx";
  8.  
  9. // polaczenie i wybór bazy danych
  10. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  11. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
  12.  
  13. // wprowadzanie do bazy nowego wpisu po wciśnięciu przycisku submit
  14. if (isset($_POST['jakies_pole']) && trim($_POST['jakies_pole']) != &#8221;) {
  15. $jakies_pole = $_POST[&#8216;jakies_pole’];
  16. $sql = "INSERT into tabela_testowa (nazwa_kolumny) VALUES ('$jakies_pole')";
  17. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  18. }
  19.  
  20. // pobierabie wartości z tabeli "tabela_testowa"
  21. $sql = "SELECT nazwa_kolumny FROM tabela_testowa";
  22. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  23. while ($lista = mysql_fetch_array($rezultat)) {
  24. echo $lista[&#8216;nazwa_kolumny’]. "<br />";
  25. }
  26.  
  27.  
  28. // formularz
  29. echo <<<FORMULARZ
  30. <br /> Dodaj wpis: <br />
  31. <form action = "index.php" method = "post">
  32.   <input type = "text" name = "jakies_pole" maxlength="20" size = "10">
  33.   <input name="submit" type = "submit" value = "Dodaj wpis">
  34. </form>
  35. FORMULARZ;
  36. ?>


Formularz ładnie dodaje nowe rekordy, jednak problem jest w tym, że są to puste pola (bez danych wpisywanych w formularzu). Mam nadzieję, że pomożecie.

Z góry dziękuję za pomoc.
nospor
wlacz wyswietlanie bledow
wyswietlaj co zawierają zmienne
debuguj

Wszystko to masz opisane tu:
Temat: Jak poprawnie zada pytanie
Zapoznaj się z tym i zastosuj do tego
Zielony91
Dzięki, sorki za tak chaotyczną wiadomość, ale naprawdę dopiero zaczynam. Zastosowałem się do wskazówek i otrzymałem następujący błąd:

Notice: Use of undefined constant ‘nazwa_kolumny’ - assumed '‘nazwa_kolumny’' in /home/xxx/public_html/iwg/index.php on line 25

Notice: Undefined index: ‘nazwa_kolumny’ in /home/xxx/public_html/iwg/index.php on line 25

Tylko nie wiem co w tym jest złego, skoro taką nazwę nosi moja kolumna w bazie danych.
nospor
Pokaż dokładnie kod jaki masz, bez żadnych tam jakieś_pole oraz poprawnie sformatowany bo teraz masz jakieś encje zamiast znaków.

Poza tym miałeś wyświetlać zawartość zmiennych, masz to opisane w linku co dostałeś.
Zielony91
To póki co jest wersja robocza - chcę zobaczyć, czy będzie to działać i dopiero wtedy będę sobie to edytował pod moje potrzeby.

Całość jest zrobiona według tego tutorialu: http://www.egrafik.pl/porady/phpmysql-oper...iem-bazy-mysql/ - jedyne co zmieniłem to linijkę z przyciskiem submit, bo ten tutorialowy nie działał.
  1. <?php
  2. ini_set('display_errors','1');
  3. // informacje na temat bazy
  4. $host = "xxx";
  5. $user = "xxx";
  6. $password = "xxx";
  7. $dbName = "xxx";
  8.  
  9. // polaczenie i wybór bazy danych
  10. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  11. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
  12.  
  13. // wprowadzanie do bazy nowego wpisu po wciśnięciu przycisku submit
  14. if (isset($_POST['jakies_pole']) && trim($_POST['jakies_pole']) != &#8221;) {
  15. $jakies_pole = $_POST[&#8216;jakies_pole’];
  16. $sql = "INSERT into tabela_testowa (nazwa_kolumny) VALUES ('$jakies_pole')";
  17. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  18. }
  19.  
  20. // pobierabie wartości z tabeli "tabela_testowa"
  21. $sql = "SELECT nazwa_kolumny FROM tabela_testowa";
  22. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  23. while ($lista = mysql_fetch_array($rezultat)) {
  24. echo $lista[&#8216;nazwa_kolumny’]. "<br />";
  25. }
  26.  
  27.  
  28. // formularz
  29. echo <<<FORMULARZ
  30. <br /> Dodaj wpis: <br />
  31. <form action = "index.php" method = "post">
  32.   <input type = "text" name = "jakies_pole" maxlength="20" size = "10">
  33.   <input name="submit" type = "submit" value = "Dodaj wpis">
  34. </form>
  35. FORMULARZ;
  36. ?>

Nazwy pól/tabel są póki co przykładowe, takie jak w tutorialu.

Btw. encje same wskakują...
nospor
Kopiujesz z tamtej strony jak leci bez jakiegokolwiek namyslu.... kopiujesz krzywe apostrofy.... mają być normalne apostrofy ' a nie jakieś krzywe
Zielony91
Sorry, ale jak wspomniałem, dopiero zaczynam przygodę z php. Patrząc na kod, który znajduje się na stronie jako tutorial, wywnioskowałem, że jest on napisany poprawnie, po to aby tacy ludzie jak ja mieli się z czego uczyć.

Poprawiłem te krzywe cudzysłowy, jednak dalej coś nie gra:
Parse error: syntax error, unexpected '{' in /home/xxx/public_html/iwg/index.php on line 15

  1. <?php
  2. ini_set('display_errors','1');
  3. // informacje na temat bazy
  4. $host = "xxx";
  5. $user = "xxx";
  6. $password = "xxx";
  7. $dbName = "xxx";
  8.  
  9. // polaczenie i wybór bazy danych
  10. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  11. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
  12.  
  13. // wprowadzanie do bazy nowego wpisu po wciśnięciu przycisku submit
  14. if (isset($_POST['jakies_pole']) && trim($_POST['jakies_pole']) != '' {
  15. $jakies_pole = $_POST['jakies_pole'];
  16. $sql = "INSERT into tabela_testowa (nazwa_kolumny) VALUES ('$jakies_pole')";
  17. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  18. }
  19.  
  20. // pobierabie wartości z tabeli tabela_testowa
  21. $sql = SELECT nazwa_kolumny FROM tabela_testowa;
  22. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  23. while ($lista = mysql_fetch_array($rezultat)) {
  24. echo $lista['nazwa_kolumny']. "<br />";
  25. }
  26.  
  27.  
  28. // formularz
  29. echo <<<FORMULARZ
  30. <br /> Dodaj wpis: <br />
  31. <form action = "index.php" method = "post">
  32.   <input type = "text" name = "jakies_pole" maxlength="20" size = "10">
  33.   <input name="submit" type = "submit" value = "Dodaj wpis">
  34. </form>
  35. FORMULARZ;
  36. ?>

Ok, jakoś się uporałem. Można zamknąć! Dzięki za pomoc.
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.