Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Formularz + dane zapisywane do bazy
Legro
post 24.07.2005, 23:17:02
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


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


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
strife
post 24.07.2005, 23:34:31
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Diablos
post 24.07.2005, 23:43:59
Post #3





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

Ostrzeżenie: (0%)
-----


  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. ?>


Ten post edytował Diablos 24.07.2005, 23:47:36
Go to the top of the page
+Quote Post
Legro
post 24.07.2005, 23:44:46
Post #4





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


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ż

Ten post edytował Legro 24.07.2005, 23:47:11


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
strife
post 24.07.2005, 23:56:25
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


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' ;


--------------------
Go to the top of the page
+Quote Post
Legro
post 25.07.2005, 00:08:59
Post #6





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


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


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
kwiateusz
post 25.07.2005, 22:36:58
Post #7


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




to wykozystaj skrypt @Diablos'a on ci to ladnie sklecil smile.gif
Go to the top of the page
+Quote Post
Legro
post 25.07.2005, 23:24:43
Post #8





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


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


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
strife
post 25.07.2005, 23:44:59
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Legro
post 25.07.2005, 23:55:35
Post #10





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


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


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
SongoQ
post 26.07.2005, 00:01:16
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


! oznacza wykonuj kiedy warunek nie spelniony. A tak przy okazji zagladaj od czasu do czasu do manuala a nie pytaj o takie szczegoly.


--------------------
Go to the top of the page
+Quote Post
kwiateusz
post 26.07.2005, 00:01:27
Post #12


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




! oznacza not lub nie czyli w tym przykladzie "jesli nie jest pusta" (if not empty) smile.gif

edit: spoznilem sie tongue.gif

Ten post edytował kwiateusz 26.07.2005, 00:01:52
Go to the top of the page
+Quote Post
Legro
post 26.07.2005, 00:06:12
Post #13





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


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. ?>


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
strife
post 26.07.2005, 00:22:40
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Dodaj po zapytaniu mysql_error" title="Zobacz w manualu PHP" target="_manual :
  1. <?php
  2.  
  3.  
  4. ?>

i powiedz co widzisz winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
Legro
post 26.07.2005, 00:35:51
Post #15





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


  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 :/


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
kwiateusz
post 26.07.2005, 01:03:39
Post #16


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




a echo mysql_error(); dodales questionmark.gif bo to by ci bledami sypalo i byloby latwiej problem okreslic
Go to the top of the page
+Quote Post
nospor
post 26.07.2005, 07:43:51
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SongoQ
post 26.07.2005, 07:55:28
Post #18





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
Legro
post 26.07.2005, 11:13:31
Post #19





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


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 - jestem z Wami !!!
Go to the top of the page
+Quote Post
nospor
post 26.07.2005, 11:20:08
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 11:58