Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MYSQL]Formularz zapisujący odpowiedzi w bazie MySQL., Jak zrobić taki formularz?
Makciek
post
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


Witam
Jestem początkujący, w sumie to nie umiem nic :/ (jeśli chodzi o PHP), więc proszę o wyrozumiałość.

Więc potrzebuję skryptu/kodu/wytłumaczenia co zrobić ,aby dane podane w formularzu były zapisywane w Bazie MySQL w postaci rekordu (szok!:P) tongue.gif

Jeśli jest to potrzebne mogę podać kod tego formularza w HTML.
Proszę o pomoc, i z góry dziękuję za pomoc.
Pozdrawiam Makciek


Ten post edytował Makciek 3.06.2009, 08:39:37
Go to the top of the page
+Quote Post
Quider
post
Post #2





Grupa: Zarejestrowani
Postów: 91
Pomógł: 9
Dołączył: 6.03.2009
Skąd: Katowice

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


  1. <form action = 'dodaj.php' method='post'>
  2. <input type='text' name='imie'>
  3. <input type='submit' value='ok'>
  4. </form>

Natomiast dodaj.php musi wyglądać w następujący sposób:

  1. <?php
  2. mysql_connect('localhost','user','haslo');
  3. mysql_select_db('baza_danych');
  4.  
  5. $sql = "INSERT INTO twoja_tabela VALUES('','".$_POST[imie]."')";
  6. ?>


powinno działać zrób analogicznie.

Ten post edytował Quider 2.06.2009, 22:04:33


--------------------
www.quider.pl <- moja prywatna strona

Pomogłem? Kliknij Pomógł
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Poproszę o tag tematu.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Makciek
post
Post #4





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


Dziękuję smile.gif

I mam problem wszystko pięknie zrobiłem ale rekordy się nie wpisują :/.
Próbowałem wielu możliwości ale rekord nie jest dodawany :/


Kod html formularza:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  3. <meta http-equiv="Reply-to" content="makciek@gmail.com" />
  4. <meta http-equiv="content-language" content="pl" />
  5. <title>Ankieta</title>
  6.  
  7. <style type="text/css">
  8. body {
  9. font: 100% Verdana, Arial, Helvetica, sans-serif;
  10. background: #8DB1FF;
  11. margin: 0;
  12. padding: 0;
  13. color: #000000;
  14. }
  15.  
  16.  
  17. </head>
  18.  
  19. Proszę wypełnić poniższy formularz, żeby dodać firmę do naszej bazy danych.
  20.  
  21. <form action = 'ankieta.php' method='post'>
  22.  
  23. Wpisz nazwę swojej firmy
  24. <input name="id" type="text" value="Nazwa Firmy"><br/>
  25. Wpisz adres twojej firmy
  26. <input type='text' name='adres' value='Adres'><br/>
  27. Wpisz telefon swojej firmy
  28. <input type='text' name='tel' value='Telefon'><br/>
  29. Wpisz E-mail swojej formy
  30. <input type='text' name='e-mail' value='E-Mail'><br/>
  31. Wpisz adres strony internetowej twojej firmy*
  32. <input type='text' name='www' value='http://www. dokończ'><br/>
  33. Wpisz login SKYPE twojej firmy*
  34. <input type='text' name='skype' value='Login SKYPE'><br/>
  35. Wpisz numer GaduGadu twojej firmy*
  36. <input type='text' name='gg' value='numer GaduGadu'><br/>
  37. Wpisz przedstawicielstwo zagraniczne twojej firmy*
  38. <input name='zagraniczne' type='text' value='Przedstawicielstwo Zagraniczne' size="50"><br/>
  39. Wpisz kto jest właścicielem twojej firmy
  40. <input type='text' name='wlascicel' value='Właściciel'><br/>
  41.  
  42. <br/>
  43. <font size="1">*Jeśli taki numer, login lub przedstawicielstwo istnieje.</font>
  44. <br/><br/>
  45.  
  46. <input type="checkbox" name="nazwa" value="Wyślij dane do naszej bazy!" onclick="this.form.elements['potwierdz'].disabled = !this.checked" />
  47. <font size='2'>Jeśli zgadzasz się na <a href='warunki.html'>podane warunki</a> naciśnij poniższy przycisk.</font><br/>
  48. <input type='submit' value='Wyślij dane do naszej bazy!' disabled='disabled' id='potwierdz'>
  49. </form>
  50.  
  51.  
  52.  
  53. </body>
  54. </html>


Tu jest kod php:
  1. <?php
  2.  
  3. $baza = mysql_connect('localhost', 'tu wpisalem login', 'a tu haslo') or die ("Nie moglem sie polaczyc z serwerem");
  4.  
  5. mysql_select_db('baza danych') or die ("Nie moglem znalesc bazy danych");
  6.  
  7. $sql = "INSERT INTO podkarpackie VALUES('','".$_POST[id]."')";
  8. or die("Nie udalo się dorzucic rekordu");
  9.  
  10. $sql = "INSERT INTO podkarpackie VALUES('','".$_POST[adres]."')";
  11. or die("Nie udalo się dorzucic rekordu");
  12.  
  13. $sql = "INSERT INTO podkarpackie VALUES('','".$_POST[tel]."')";
  14. or die("Nie udalo się dorzucic rekordu");
  15.  
  16. $sql = "INSERT INTO podkarpackie VALUES('','".$_POST[e-mail]."')";
  17. or die("Nie udalo się dorzucic rekordu");
  18.  
  19. $sql = "INSERT INTO podkarpackie VALUES('','".$_POST[www]."')";
  20. or die("Nie udalo się dorzucic rekordu");
  21.  
  22. $sql = "INSERT INTO podkarpackie VALUES('','".$_POST[skype]."')";
  23. or die("Nie udalo się dorzucic rekordu");
  24.  
  25. $sql = "INSERT INTO podkarpackie VALUES('','".$_POST[gg]."')";
  26. or die("Nie udalo się dorzucic rekordu");
  27. ?>


Ten post edytował Makciek 3.06.2009, 14:11:59
Go to the top of the page
+Quote Post
guilty82
post
Post #5





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


nie $_POST[id]
a $_POST['id']

zamiast
  1. <?php
  2. or die("Nie udalo się dorzucic rekordu");
  3. ?>


daj
  1. <?php
  2. mysql_query($sql) or die("Nie udalo się dorzucic rekordu. Błąd: ".mysql_error());
  3. ?>


Ten post edytował guilty82 3.06.2009, 14:18:25
Go to the top of the page
+Quote Post
Makciek
post
Post #6





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


wyskakuje błąd:
"Nie udalo sie dorzucic rekordu. Blad: Column count doesn't match value count at row 1"
Go to the top of the page
+Quote Post
golaod
post
Post #7





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


No to skoro masz błąd, to na co czekasz ? Jedyne, co Ci mogę doradzić to sprawdzenie konstrukcji tabelki z tym co insertujesz...

Ten post edytował golaod 3.06.2009, 14:33:36
Go to the top of the page
+Quote Post
Makciek
post
Post #8





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


na to że nie znam się na MySQL i nie wiem o co do końca chodzi :/

Chodzi tu chyba o złą budowę tabeli.

Ten post edytował Makciek 3.06.2009, 14:35:08
Go to the top of the page
+Quote Post
guilty82
post
Post #9





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


to znaczy ze ilosc kolumn w zapytaniu nie pasuje do ilosci kolumn w bazie.. jak wyglada ta tabela?
Go to the top of the page
+Quote Post
golaod
post
Post #10





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Nie trzeba się znać na MySQL, żeby wiedzieć co ten błąd reprezentuje. Ty w ogóle wiesz jak wygląda Twoja tabelka podkarpackie ? Podaj mi jej konstrukcję.
Go to the top of the page
+Quote Post
Makciek
post
Post #11





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


Baza wygląda tak i jak dla mnie jest ok jeśli chodzi o ilość pól:


A tak wyglądają detale:
Go to the top of the page
+Quote Post
pablo_83
post
Post #12





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


przede wszystkim masz złe typy w bazie nie możesz adresu czy maila zapisać w int. W int zapisujesz tylko liczby. Zmień typy na poprawne.
Proponuje zmianę zapisu dodawania do bazy na krótszą (jest bardziej przejrzysta)

$wynik = mysql_query("INSERT INTO podkarpackie (id, adres,tel, e-mail, ...)
VALUES ('$id, ... ----tutaj wartości z formularza')")
or die(mysql_error());

warto też wartością z formularza przypisać zmienne, bo jeśli gdzieś w kodzie bedziesz chciał jakąś weryfikacje dac czy coś to wpiszesz zmienne sobie po prostu

np.
$id = $_POST['id'];
itp
Go to the top of the page
+Quote Post
Makciek
post
Post #13





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


a jaki typ obsługuje i liczby i tekst?
Go to the top of the page
+Quote Post
pablo_83
post
Post #14





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


w char możesz zapisać liczby i litery ale to kiepski pomysł. Bo ktoś w nr tel może wpisać Ci wtedy litery i jest lipa.

Co do zmiennych zapytaj google exclamation.gif

"typy zmiennych " i wszystko jasne
Go to the top of the page
+Quote Post
Makciek
post
Post #15





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


char dałem wszędzie oprócz telefonu i gg
zaraz zrobię test czy działa

dalej ten sam błąd :/
Go to the top of the page
+Quote Post
pablo_83
post
Post #16





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


jeszcze masz źle ustawiony klucz główny w bazie, spróbuj dodać pole IdPodkarpackie typ int i opcje autoincrement, na to pole ustaw primary key, a z id proponuje zmienić nazwę na "nazwa" i usuń z tego pola primary key
Go to the top of the page
+Quote Post
Makciek
post
Post #17





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


zrobione i teraz znowu kolumny nie pasują :/:
Column count doesn't match value count at row 1

Błąd jest wtedy kiedy mam dodatkowe pole "IdPodkarpackie" i wtedy kiedy go nie ma sad.gif. Zrobilem wszystko co napisales.
Go to the top of the page
+Quote Post
pablo_83
post
Post #18





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


  1. <?php
  2. ("INSERT INTO podkarpackie (id, adres,tel, e-mail, ...)
  3.            VALUES ('$id lub $_POST['id'], ... itd  ----tutaj wartości z formularza')")
  4. ?>


nie deklarujesz kolumn do jakich za zostać wykonany wpis, wskazujesz mu tylko tabele, sprobuj to zmienić na taki jak wyżej...
i zobaczymy

oczywiście $id wykorzystujesz jeśli wcześniej przypisałeś zmienne do danych z formularza

Ten post edytował pablo_83 3.06.2009, 15:52:21
Go to the top of the page
+Quote Post
Makciek
post
Post #19





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


TERAZ TAKI BŁĄD:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/virtual/iit.cba.pl/ankieta.php on line 8

A TU KOD PHP:
  1. <?php
  2.  
  3. $baza = mysql_connect('serwer', 'login', 'haslo') or die ("Nie moglem sie polaczyc z serwerem");
  4.  
  5.  
  6. $wynik = mysql_query("INSERT INTO podkarpackie (nazwa, adres,tel, mail, www, skype, gg, zagraniczne, wlasciciel)
  7. VALUES ('$_POST['nazwa'], $_POST['adres'], $_POST['tel'], $_POST['mail'], $_POST['www'], $_POST['skype'], $_POST['gg'], $_POST['zagraniczne'], $_POST['wlasciciel']')")
  8.  
  9. mysql_close($baza);
  10.  
  11. ?>


Ten post edytował Makciek 3.06.2009, 16:03:31
Go to the top of the page
+Quote Post
pablo_83
post
Post #20





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


za dużo ' (apostrofów)
  1. <?php
  2. $wynik = mysql_query("INSERT INTO podkarpackie (nazwa, adres,tel, mail, www, skype, gg, zagraniczne, wlasciciel)
  3. VALUES  ($_POST['nazwa'], $_POST['adres'], $_POST['tel'], $_POST['mail'],  $_POST['www'], $_POST['skype'], $_POST['gg'], $_POST['zagraniczne'],  $_POST['wlasciciel'])")
  4. ?>


spróbuj teraz
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 Aktualny czas: 19.08.2025 - 19:26