Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Dodawanie danych z formularza do MySQL
plmorpheus
post 12.01.2008, 20:09:55
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

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


Witam,

dla niektórych to pytanie może wydać się banalne, ale każdy kiedyś zaczynał, więc proszę o odpowedź:

otóż interesuje mnie, jak sprawić, aby dodać dane wpisywane do formularza do bazy mysql....

Zrobiłem sobie coś takiego ale pewnie jest to totalna bzdura więc proszę o poprawienie i odpowiedź jak to zrobić,

Oto kod:

Kod
<html>
  
   <head>
     <title></title>
   </head>
  
   <body>
   <TABLE BORDER=2>
   <TR>
   <TH>Imię</TH>
   <TH>Nazwisko</TH>
   <TH>Telefon</TH>
   </TR>
  
  
   <FORM METHOD='POST'>
   Imię: <INPUT TYPE='text' NAME='imie'><BR>
   Nazwisko: <INPUT TYPE='text' NAME='nazwisko'><BR>
   Telefon: <INPUT TYPE='text' NAME='telefon'><BR>
   <INPUT TYPE='submit' VALUE='Zapodaj'>
   </FORM>
   <BR><BR>
   <?
  
   $user = "root";
   $pass = "vertrigo";
   $database = "baza2";
  
   mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
   mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
   mysql_query($query);
  
   $query = (INSERT INTO kstel ('imie', 'nazwisko', 'telefon') VALUES ('$_POST['imie]', '$_POST['nazwisko]', '$_POST['telefon']');
  
   ?>
  
   <TR>
   <TD><? echo $imie ?></TD>
   <TD><? echo $nazwisko ?></TD>
   <TD><? echo $telefon ?></TD>
   </TR>
   </TABLE>
  
   </body>
   </html>


Nie nabijajcie się ze mnie - jestem naprawdę początkujący....
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 20:23:45
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


Nie działa ponieważ niezamknąłeś 1 nawiasu w
  1. <?php
  2. $query = mysql_query("INSERT INTO kstel ('imie', 'nazwisko', 'telefon') VALUES ('$_POST['imie]', '$_POST['nazwisko]', '$_POST['telefon']')");
  3. ?>

A pozatym Proponuje tak:

  1. <?php
  2. echo "<html>
  3.  
  4.  <head>
  5.  <title></title>
  6.  </head>
  7.  
  8.  <body>";
  9.  
  10. if ($_GET['akcja']=="zapodaj") {
  11. $user = "root";
  12.  $pass = "vertrigo";
  13.  $database = "baza2";
  14.  
  15.  mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  16.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  17.  mysql_query($query);
  18. $imie = $_POST['imie'];
  19. $nazwisko = $_POST['nazwisko'];
  20. $itelefon = $_POST['telefon'];
  21.  
  22. $query = mysql_query("INSERT INTO kstel VALUES ('$imie', '$nazwisko', '$telefon')");
  23.  
  24. if (!$query) {
  25. echo "Bład wpisu nie dodano ";
  26. } else {
  27. echo " Wpis został dodany !<br><br>Wprowadzone dane:<br>Imie: ".$imie."<br>Nazwisko: ".$nazwisko."<br>Telefon: ".$telefon."";
  28. }
  29.  
  30. } else {
  31. echo "  <FORM METHOD='POST' action='WPISZNAZWEPLIKU.php?akcja=zapodaj'>
  32.  Imię: <INPUT TYPE='text' NAME='imie'><BR>
  33.  Nazwisko: <INPUT TYPE='text' NAME='nazwisko'><BR>
  34.  Telefon: <INPUT TYPE='text' NAME='telefon'><BR>
  35.  <INPUT TYPE='submit' VALUE='Zapodaj'>
  36.  </FORM>";
  37. }
  38.  
  39.  
  40.  
  41.  
  42. echo "</body>
  43. </html>";
  44. ?>


Ale jeżeli wolisz zostać przy Twoim kodzie poprostu wklej ten kod zamiast Twojego:

  1. <?php
  2. $query = mysql_query("INSERT INTO kstel ('imie', 'nazwisko', 'telefon') VALUES ('$_POST['imie]', '$_POST['nazwisko]', '$_POST['telefon']')");
  3. ?>


Ten post edytował RubiX 12.01.2008, 20:28:55


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
cornholio666
post 12.01.2008, 20:27:20
Post #3





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Jak juz to

  1. <?php
  2. $query = ("INSERT INTO kstel VALUES ('$imie', '$nazwisko', '$telefon')");
  3.  mysql_query($query);
  4. ?>


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
plmorpheus
post 12.01.2008, 20:33:09
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

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


Niby wszystko działa, ale jak wchodze do phpmyadmina to nowe rekordy się nie pojawiają :/
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 20:36:39
Post #5





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


A kozystasz z Twojego kodu czy tego co ja Ci przesłałem ?

Jezeli Twojego to doklej tam :

  1. <?php
  2. $user = "root";
  3.  $pass = "vertrigo";
  4.  $database = "baza2";
  5.  
  6.  mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  7.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  8.  mysql_query($query);
  9.  
  10. $query = mysql_query("INSERT INTO kstel ('imie', 'nazwisko', 'telefon') VALUES ('$_POST['imie]', '$_POST['nazwisko]', '$_POST['telefon']')");
  11.  
  12. if (!query) {
  13. echo "blad";
  14. } else {
  15. echo "dziala";
  16. }
  17. ?>


Jezeli pojawi sie dziala to powinno wpisać jeżeli błąd to sprawdz czy podales prawidłowe dane do sql no i powinien na stronie wyskoczyc jakis error ;p


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
Morfi777
post 12.01.2008, 20:41:16
Post #6





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


Witam

Diabeł tkwi w tej linijce:

  1. <?php
  2. $query = (INSERT INTO kstel ('imie', 'nazwisko', 'telefon') VALUES ('$_POST['imie]', '$_POST['nazwisko]', '$_POST['telefon']');
  3. ?>


Powinno byc tak:

  1. <?php
  2. $query = "(INSERT INTO kstel ('imie', 'nazwisko', 'telefon') VALUES ('".$_POST['imie']."', '".$_POST['nazwisko']."', '".$_POST['telefon']."')";
  3. ?>


Zapomniałeś dodać cudzysłów i potem posklejać i źle postawione średniki.


Pozdrawiam

Ten post edytował Morfi777 12.01.2008, 20:42:04
Go to the top of the page
+Quote Post
plmorpheus
post 12.01.2008, 20:43:34
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

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


RubiX - wkleiłem Twój kod i lipa :/
Morfi777 - po twoich poprawkach niestety też nic :/ dane zostały przekopiowane do tabeli ale do mysqla niestety się nie dopisuje :/

Ten post edytował plmorpheus 12.01.2008, 20:47:22
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 20:46:59
Post #8





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


ale co ? jakiś błąd sie pokazał czy cos questionmark.gif

może odświerz strone w phpmyadmin ?

Do diabeł777

Co to jest ?

  1. <?php
  2. $query = "(INSERT INTO kstel ('imie', 'nazwisko', 'telefon') VALUES ('".$_POST['imie']."', '".$_POST['nazwisko']."', '".$_POST['telefon']."')";
  3. ?>


To na 100% niezadziała pomyśl co tu napisałeś wogle niema mysql_query a po 2 nie powinno być " przed tym ...

Ten post edytował RubiX 12.01.2008, 20:49:12


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
Morfi777
post 12.01.2008, 20:48:17
Post #9





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


Hallo ! Czy zmienna nie powinna być w cudzysłowiu/średnikach questionmark.gif (3 posty wyżej)
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 20:49:42
Post #10





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


Na 100% nie ! czytaj 2 posty powyzej

plmorpheus a masz dobrze baze wgraną i zinterpretowane pola auto_increment oraz PRIMARY key questionmark.gif

Ten post edytował RubiX 12.01.2008, 20:51:09


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
Morfi777
post 12.01.2008, 20:52:15
Post #11





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


RubiX - sam dodałeś mu w porawce za nawiasem -> " <- co do mojej poprawki to ja zawsze robie tak:

  1. <?php
  2. $sql="INSERT INTO xxx ( imie, nazwisko ) VALUES ( '".$_POST["imiex"]."','".$_POST["nazwiskox"]."')";
  3. mysql_query ($sql) or die ("złe pytanie");
  4. ?>


I mnie działa, ale pewnie możliwości jest wiele smile.gif

Ten post edytował Morfi777 12.01.2008, 20:54:42
Go to the top of the page
+Quote Post
plmorpheus
post 12.01.2008, 20:54:48
Post #12





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

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


Cytat(RubiX @ 12.01.2008, 20:46:59 ) *
ale co ? jakiś błąd sie pokazał czy cos questionmark.gif

może odświerz strone w phpmyadmin ?


No właśnie nie wyświetla się żaden błąd - wyświetla się po prostu strona WPISZNAZWEPLIKU.php (zakładam, że jest to dowolna strona, która ma się wyświetlić po wykonaniu operacji), jednakże po odświeżeniu strony (tak tak odświeżam phpmyadmina biggrin.gif ) nie pojawiają się nowe wpisy..
Go to the top of the page
+Quote Post
Morfi777
post 12.01.2008, 20:57:07
Post #13





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


A spróbuj jeszcze zamienić:

  1. <FORM METHOD='POST'>


na

  1. <FORM METHOD='POST' ACTION="twoj_plik.php">
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 21:03:48
Post #14





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


nie w wpisznazwepliku wpisz NAZWE Twojego pliku w którym masz formularz !

np jak mas zten formularz w pliku ksiazka.php

to zamiast wpisznazwapliku wpisz ksiazka tongue.gif


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
plmorpheus
post 12.01.2008, 21:12:37
Post #15





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

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


No oki, czyli teraz jest tak:

plik, którego kod podałeś (z uwzględnioną nazwą nowego pliku):

Kod
<?php
echo "<html>

   <head>
     <title></title>
   </head>

   <body>";

if ($_GET['akcja']=="zapodaj") {
$user = "root";
   $pass = "vertrigo";
   $database = "baza2";

   mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
   mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
   mysql_query($query);
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$telefon = $_POST['telefon'];

$query = mysql_query("INSERT INTO kstel VALUES ('$imie', '$nazwisko', '$telefon')");

if (!$query) {
echo "Bład wpisu nie dodano ";
} else {
echo " Wpis został dodany !<br><br>Wprowadzone dane:<br>Imie: ".$imie."<br>Nazwisko: ".$nazwisko."<br>Telefon: ".$telefon."";
}

} else {
echo "   <FORM METHOD='POST' action='ok.php?akcja=zapodaj'>
   Imię: <INPUT TYPE='text' NAME='imie'><BR>
   Nazwisko: <INPUT TYPE='text' NAME='nazwisko'><BR>
   Telefon: <INPUT TYPE='text' NAME='telefon'><BR>
   <INPUT TYPE='submit' VALUE='Zapodaj'>
   </FORM>";
}




echo "</body>
</html>";
?>


i drugi ok.php:

Kod
<html>

<head>
  <title></title>
</head>

<body>

<?php

echo 'Imię'.' ';
echo $_POST['imie'];
echo "<BR>";
echo 'Nazwisko'.' ';
echo $_POST['nazwisko'];
echo "<BR>";
echo 'Telefon'.' ';
echo $_POST['telefon'];
echo "<BR>";


?>

</body>

</html>


I niby wszystko jest git, plik ok.php wyswietla wpisane dane, ale do mysqla sie to nie dodaje sadsmiley02.gif
A żeby było lepiej, to nie wyświetla się żaden bład blink.gif
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 21:20:36
Post #16





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


Źle plik z moim kodem nazwij ok.php

Musisz miec tylko 1 plik i nic wiecej

Plik ok.php:

  1. <?php
  2. echo "<html>
  3.  
  4.  <head>
  5.  <title></title>
  6.  </head>
  7.  
  8.  <body>";
  9.  
  10. if ($_GET['akcja']=="zapodaj") {
  11. $user = "root";
  12.  $pass = "vertrigo";
  13.  $database = "baza2";
  14.  
  15.  mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  16.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  17.  mysql_query($query);
  18. $imie = $_POST['imie'];
  19. $nazwisko = $_POST['nazwisko'];
  20. $telefon = $_POST['telefon'];
  21.  
  22. $query = mysql_query("INSERT INTO kstel VALUES ('$imie', '$nazwisko', '$telefon')");
  23.  
  24. if (!$query) {
  25. echo "Bład wpisu nie dodano ";
  26. } else {
  27. echo " Wpis został dodany !<br><br>Wprowadzone dane:<br>Imie: ".$imie."<br>Nazwisko: ".$nazwisko."<br>Telefon: ".$telefon."";
  28. }
  29.  
  30. } else {
  31. echo "  <FORM METHOD='POST' action='ok.php?akcja=zapodaj'>
  32.  Imię: <INPUT TYPE='text' NAME='imie'><BR>
  33.  Nazwisko: <INPUT TYPE='text' NAME='nazwisko'><BR>
  34.  Telefon: <INPUT TYPE='text' NAME='telefon'><BR>
  35.  <INPUT TYPE='submit' VALUE='Zapodaj'>
  36.  </FORM>";
  37. }
  38.  
  39.  
  40.  
  41.  
  42. echo "</body>
  43. </html>";
  44. ?>


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
plmorpheus
post 12.01.2008, 21:24:15
Post #17





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

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


To teraz rozmawiamy treściwie snitch.gif
Tylko że po wybraniu "Zapodaj" pojawia się komunikat:

Cytat
Bład wpisu nie dodano


Co jest nie tak?
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 21:26:02
Post #18





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


No jezeli to wyskoczyło to znaczy ze źle jest baza wgrana moze masz w niej wiecej wartosci czy tylko imie , nazwiko i telefon niemasz id czy cos ?


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
plmorpheus
post 12.01.2008, 21:27:59
Post #19





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

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


No jest pole "nr" które jest kluczem głównym z opcją "auto_increment"
Go to the top of the page
+Quote Post
RubiX
post 12.01.2008, 21:29:13
Post #20





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


No w takim bądź razie wklej ten kod:

<?php
echo "<html>

<head>
<title></title>
</head>

<body>";

if ($_GET['akcja']=="zapodaj") {
$user = "root";
$pass = "vertrigo";
$database = "baza2";

mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
mysql_query($query);
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$telefon = $_POST['telefon'];

$query = mysql_query("INSERT INTO kstel VALUES ('', '$imie', '$nazwisko', '$telefon')");

if (!$query) {
echo "Bład wpisu nie dodano ";
} else {
echo " Wpis został dodany !<br><br>Wprowadzone dane:<br>Imie: ".$imie."<br>Nazwisko: ".$nazwisko."<br>Telefon: ".$telefon."";
}

} else {
echo " <FORM METHOD='POST' action='ok.php?akcja=zapodaj'>
Imię: <INPUT TYPE='text' NAME='imie'><BR>
Nazwisko: <INPUT TYPE='text' NAME='nazwisko'><BR>
Telefon: <INPUT TYPE='text' NAME='telefon'><BR>
<INPUT TYPE='submit' VALUE='Zapodaj'>
</FORM>";
}




echo "</body>
</html>";
?>


--------------------
===================================

\o/ torebki
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 - 12:14