Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz + dane zapisywane do bazy
Forum PHP.pl > Forum > Przedszkole
Legro
Mam gotowy formularz.

  1. <?php
  2.  
  3. if (isset($_POST[imie]) && isset ($_POST[nazwisko]))
  4.  
  5. {
  6.  
  7. echo 'Wprowadzone Dane:<br>';
  8.  
  9. echo &#092;"Imię: $_POST[imie]<br>\";
  10. echo &#092;"Nazwisko: $_POST[nazwisko]<br>\";
  11. echo &#092;"Miasto: $_POST[miasto]<br>\";
  12. echo &#092;"Numer GG: $_POST[gg]<br>\";
  13.  
  14. }
  15. else
  16. {
  17.  
  18. echo '<form action=\"form.php\" method=\"post\">
  19. <input type=\"text\" size=\"20\" value=\"Wpisz Twoje imię.\" Name=\"imie\"><br>
  20. <input type=\"text\" size=\"20\" value=\"Wpisz Twoje nazwisko.\" Name=\"nazwisko\"><br>
  21. <input type=\"text\" size=\"20\" value=\"Wpisz miasto.\" Name=\"miasto\"><br>
  22. <input type=\"text\" size=\"20\" value=\"Wpisz numer GG.\" Name=\"gg\"><br><br>
  23. <input type=\"submit\" value=\"Wyślij\"><input type=\"reset\" value=\"Reset\">';
  24.  
  25. }
  26.  
  27. ?>


Skrypt wyświetla formularz. Wpisuje się dane i wyślij... On te dane potem wyświetla... Dalej to już pewnie wiecie więc pisać nie będę.. Jak zrobić, aby te dane były zapisywane do bazy danych..

Połączenie, wybór bazy to wiem..

Mam tabele np. form_znaj a struktura taka:

imie | nazwisko | miasto | gg

I jak zapisać dane do bazy questionmark.gif?



Taki ma być proces:

Wyświetlenie formularza -> Jak go wypełnisz klikasz wyślij -> Dane się zapisują w bazie danych i na ekranie wyświetlane są dane, które się wypełniło w formularzu.

Długo się męczyłem.. worriedsmiley.gif PROSZ pomóżcie mi sadsmiley02.gif
strife
Cytat(Legro @ 2005-07-25 00:17:02)
I jak zapisać dane do bazy questionmark.gif?

  1. <?php
  2.  
  3. if ( isset ( $_POST['send'] ) ) // czyli jesli nacisnie button o nazwie \"send\";
  4. {
  5.    $db -> q(&#092;"INSERT INTO tabela SET wartosc1 = '\" . $_POST['imie'] . \"';\");
  6. }
  7.  
  8. ?>

questionmark.gif


BTW.

Było na forum dużo razy winksmiley.jpg
Diablos
  1. <?php
  2.  
  3. if ( !isset($_GET['opcja'] ) { $opcja = 'index'; }
  4.  
  5. switch($opcja) {
  6.  
  7.  
  8. case 'index':
  9.  
  10. echo '<form action=\"form.php\" method=\"post\">
  11. <input type=\"text\" size=\"20\" value=\"Wpisz Twoje imię.\" Name=\"imie\"><br>
  12. <input type=\"text\" size=\"20\" value=\"Wpisz Twoje nazwisko.\" Name=\"nazwisko\"><br>
  13. <input type=\"text\" size=\"20\" value=\"Wpisz miasto.\" Name=\"miasto\"><br>
  14. <input type=\"text\" size=\"20\" value=\"Wpisz numer GG.\" Name=\"gg\"><br><br>
  15. <input type=\"hidden\" name=\"opcja\" value=\"wprowadzanie\">
  16. <input type=\"submit\" value=\"Wyślij\"><input type=\"reset\" value=\"Reset\">';
  17.  
  18. break;
  19.  
  20. case 'wprowadzanie':
  21.  
  22.  
  23. $host = 'localhost';
  24. $user = 'nazwausera'; 
  25. $pass = 'tajnehaslo';
  26. $name = 'nazwabazy';
  27.  
  28. $connection = mysql_connect(&#092;"$host\",\"$user\",\"$pass\");
  29. mysql_select_db(&#092;"$name\");
  30.  
  31.  $query = mysql_query('INSERT INTO nazwatabeli ( imie, nazwisko, miasto, gg ) VALUES ( '$_POST['imie']', '$_POST['nazwisko']', '$_POST['miasto']', '$_POST['gg']' )');
  32.  
  33. echo 'Wprowadzone Dane:<br>';
  34.  
  35. echo 'Imię: ' . $_POST['imie'] . '<br>';
  36. echo 'Nazwisko: ' . $_POST['nazwisko'] . '<br>';
  37. echo 'Miasto: ' . $_POST['miasto'] . '<br>';
  38. echo 'Numer GG: ' . $_POST['gg'] . '<br>';
  39.  
  40.  
  41.  
  42.  
  43. break;
  44.  
  45. }
  46. ?>
Legro
Dzięki scarface... biggrin.gif

I teraz jakbyś mi mógł powiedzieć coś o tym kawałku kodu:

Kod
$db -> q("INSERT INTO tabela SET wartosc1 = '" . $_POST['imie'] . "';");


Co znaczy operator -> (jeżeli to wogóle operator jest, ucze się dopiero), i dlaczego po tym jest 'q', dlaczego akurat one ? A jak chce dodać kolejne wartości do tabeli to muszę po:

Kod
wartosc1 = '" . $_POST['imie'] . "';"


Dodać np. to:

Kod
, nazwisko = '" . $_POST['nazwisko'] . "';"


questionmark.gif?

Z góry dzięki Ci bardzo.

OK. dzięki Ci Diablos też
strife
klasa -> metoda();

Zamisast pisać w kółko mysql_query stwórz sobie własny sterownik do bazy...
np.
  1. <?php
  2.  
  3. // ...
  4. class db
  5. {
  6.   function q($query)
  7.   {
  8.     $w =  mysql_query($query);
  9.     return $w;
  10.   }
  11. }
  12. // i teraz...
  13. $db = new db;
  14. $zapytanie = $db -> q(&#092;"SELECT * FROM tabela;\");
  15.  
  16. // albo statycznie
  17. $zapytanie = db::q(&#092;"SELECT * FROM tabela;\");
  18.  
  19. // ...
  20.  
  21. ?>


Stworzenie własnego sterownika do bazy dużo ułatwia i jest bardziej elastyczne.

Cytat
A jak chce dodać kolejne wartości do tabeli

Tak, dodać przecinek, średnik jest na samym końcu zamyka zapytanie. np.
  1. INSERT
  2. INTO tabela SET wartosc1 = 'cos', wartosc2 = 'cos2' ;
Legro
A gdzie to:
  1. <?php
  2.  
  3. if ( isset ( $_POST['send'] ) ) // czyli jesli nacisnie button o nazwie \"send\";
  4. {
  5.  $db -> q(&#092;"INSERT INTO tabela SET wartosc1 = '\" . $_POST['imie'] . \"';\");
  6. }
  7.  
  8. ?>

mam wcisnąć do mojego skryptu, bez użycia swich i tych klas, bo ja na razie się uczę takich prostszych rzeczy a nie od razu jakieś klasy blink.gif biggrin.gif
kwiateusz
to wykozystaj skrypt @Diablos'a on ci to ladnie sklecil smile.gif
Legro
Po pierwsze to nie działa..
Wyskakuje błąd tu:

Kod
if ( !isset($_GET['opcja'] ) { $opcja = 'index'; }


Gdzieś przy $opcja = 'index';

A po drugie to nie chcę użyć swicha do tego rolleyes.gif
strife
No to po kolei... smile.gif

Najpierw musisz sprawdzić czy wszystkie dane zostały wysłane, i czy nie są 'puste'..
  1. <?php
  2.  
  3. if ( ! empty ( $_POST['imie'] ) && ! empty ( $_POST['nazwisko'] ) && ! empty ( $_POST['miasto'] ) && ! empty ( $_POST['gg'] ) )
  4. {
  5.    //.. jesli ten warunek zostanie spelniony, czyli wszystkie pola zostana wypelnione
  6. to...
  7.  
  8.   $zapytanie = mysql_query(&#092;"INSERT 
  9.                                            INTO form_znaj
  10.                                            SET `imie` = '\" . $_POST['imie'] . \"',
  11.                                                   `nazwisko = '\" . $_POST['nazwisko'] . \"',
  12.                                                   `gg` = \" . $_POST['gg'] . \",
  13.                                                   `miasto` = '\" . $_POST['miasto'] . \"';\"
  14.                                          );
  15.   echo 'rekord zostal poprawnie dodany do bazy';
  16. }
  17. else{
  18.        
  19.         echo 'Wprowadz dane i wcisnij Wyslij';
  20.  
  21. }
  22.  
  23. ?>


Umieść to gdzie chcesz, na początku jak i na końcu będzie działać. smile.gif Zauważ też że przy numerze gg nie ma pojedyńczych ', dlatego że zakładam że pole gg w twojej bazie jest INT.

Pozdrawiam!

BTW.

Mogłem się gdzieś skrobnąć, jak coś to poprawcie winksmiley.jpg
Legro
Cytat
Zauważ też że przy numerze gg nie ma pojedyńczych ', dlatego że zakładam że pole gg w twojej jest INT.


Tak mam INT.

Cytat
Mogłem się gdzieś skrobnąć, jak coś to poprawcie


Nic biggrin.gif Wszystko działa OK. Dzięki scarface.. Przenalizuje kod i postaram się z głowy napisać biggrin.gif:D



Aha i jeszcze coś.. Co znaczy ! np. w tym przykładzie:

  1. <?php
  2.  
  3. if ( ! empty
  4.  
  5. ?>


questionmark.gif I co by się stało, gdyby bez tego wykrzyknika było questionmark.gif
SongoQ
! oznacza wykonuj kiedy warunek nie spelniony. A tak przy okazji zagladaj od czasu do czasu do manuala a nie pytaj o takie szczegoly.
kwiateusz
! oznacza not lub nie czyli w tym przykladzie "jesli nie jest pusta" (if not empty) smile.gif

edit: spoznilem sie tongue.gif
Legro
No dobra dzięki...

Zrobiłem ten skrypt, najpierw do bazy dodało a gdy zmieniłem tabele na form_two to już nie dodaje :/ Żaden błąd nie wyskakuje tylko do bazy się nie dodaje :/

Mój kod

  1. <?php
  2.  
  3. mysql_connect (&#092;"localhost\", \"root\", \"krasnal\");
  4. mysql_select_db (&#092;"php_skrypty\");
  5.  
  6. if (isset($_POST[imie]) && isset ($_POST[nazwisko]))
  7.  
  8. {
  9.  
  10. echo 'Wprowadzone Dane:<br>';
  11.  
  12. echo &#092;"Imię: $_POST[imie]<br>\";
  13. echo &#092;"Nazwisko: $_POST[nazwisko]<br>\";
  14. echo &#092;"Miasto: $_POST[miasto]<br>\";
  15. echo &#092;"Numer GG: $_POST[gg]<br>\";
  16.  
  17. }
  18. else
  19. {
  20.  
  21. echo '<form action=\"formularz.php\" method=\"post\">
  22. <input type=\"text\" size=\"20\" value=\"Wpisz Twoje imię.\" Name=\"imie\"><br>
  23. <input type=\"text\" size=\"20\" value=\"Wpisz Twoje nazwisko.\" Name=\"nazwisko\"><br>
  24. <input type=\"text\" size=\"20\" value=\"Wpisz miasto.\" Name=\"miasto\"><br>
  25. <input type=\"text\" size=\"20\" value=\"Wpisz numer GG.\" Name=\"gg\"><br><br>
  26. <input type=\"submit\" value=\"Wyślij\"><input type=\"reset\" value=\"Reset\">';
  27.  
  28. }
  29.  
  30. if ( ! empty ( $_POST['imie'] ) && ! empty ( $_POST['nazwisko'] ) && ! empty ( $_POST['miasto'] ) && ! empty ( $_POST['gg'] ) )
  31. {
  32.  
  33. $zapytanie = mysql_query(&#092;"INSERT INTO form_two SET `imie` = '\" . $_POST['imie'] . \"', `nazwisko = '\" . $_POST['nazwisko'] . \"', `miasto` = '\" . $_POST['miasto'] . \", `gg` = \" . $_POST['gg'] . \";\"
  34.  );
  35. echo 'Wpis pomyslnie dodany do bazy';
  36. }
  37. else{
  38.  
  39. echo 'Wprowadz dane i wcisnij Wyslij';
  40.  
  41. }
  42.  
  43. ?>
strife
Dodaj po zapytaniu mysql_error" title="Zobacz w manualu PHP" target="_manual :
  1. <?php
  2.  
  3.  
  4. ?>

i powiedz co widzisz winksmiley.jpg
Legro
  1. <?php
  2.  
  3. $zapytanie = mysql_query(&#092;"INSERT INTO form_two SET `imie` = '\" . $_POST['imie'] . \"', `nazwisko = '\" . $_POST['nazwisko'] . \"', `miasto` = '\" . $_POST['miasto'] . \", `gg` = \" . $_POST['gg'] . \";\"
  4.  );
  5.  
  6. ?>


Błąd miałem chyba tu:

Kod
`miasto` = '" . $_POST['miasto'] . "


A dokładniej brakowło ' po ['miasto'] . "

Ale nadal do bazy się nie dodawają wpisy :/
kwiateusz
a echo mysql_error(); dodales questionmark.gif bo to by ci bledami sypalo i byloby latwiej problem okreslic
nospor
w zapytanie co podałeś masz błąd przu nazwisko. Masz coś takiego ....`nazwisko = .... Zjadłeś `. powinno być ...`nazwisko` =....
A pozatym ja nigdy nie stosuję `, nie ma takiego wymogu. bez tego też działa i mniej miejsc jest gdzie można popełnić byka.
SongoQ
Cytat
A pozatym ja nigdy nie stosuję `, nie ma takiego wymogu. bez tego też działa i mniej miejsc jest gdzie można popełnić byka.

Dodam tylko ze ` jest tylko w MySQLu, wiec podobnie jak @nospor nie stosuje tego.
Legro
Zrobiłem tak:

  1. <?php
  2.  
  3. $zapytanie = mysql_query(&#092;"INSERT INTO form_two SET imie = '\" . $_POST['imie'] . \"', nazwisko = '\" . $_POST['nazwisko'] . \"', miasto = '\" . $_POST['miasto'] . \", gg = \" . $_POST['gg'] . \";\"
  4.  );
  5.  
  6. ?>


I nadal do bazy się nie dodaje :?:

Ehh blink.gif
nospor
ale ty ciągle robisz bledy w tym zapytaniu. pozatym dodaje ci wywalanie bledu:

  1. <?php
  2.  
  3. $zapytanie = mysql_query(&#092;"INSERT INTO form_two SET imie = '\" . $_POST['imie'] . \"', nazwisko = '\" . $_POST['nazwisko'] . \"', miasto = '\" . $_POST['miasto'] . \"', gg = \" . $_POST['gg']) or die(mysql_error());
  4.  
  5. ?>
tym razem nie zamknąleś ' po miasto
Legro
Dobra chłopaki. Już działa wszystko OK cool.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.