Problem z formularzem - INSERT to MySQL

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
zabora
Posty: 8
Rejestracja: ndz sty 16, 2005 11:59 am

Problem z formularzem - INSERT to MySQL

Post autor: zabora »

Witam,
pewnie to banalne i nie chce zawracac glowy tutaj podobnymi tematami ale mam problem, nad ktorym siedzialem troche i nic sensownego nie wymyslilem.

Mam prosty plik w php:

<HTML>
<BODY>

TEST_ZAPIS_DO_BAZY_INSERT

<FORM METHOD="POST" ACTION="insert.php">

Imię: <INPUT TYPE=TEXT NAME="IMIE" SIZE=15> <BR>
Nazwisko: <INPUT TYPE=TEXT NAME="NAZWISKO" SIZE=30> <BR>

<BR>

<INPUT TYPE=SUBMIT>


</FORM>
</BODY>
</HTML>

i plik insert.php:

<HTML>
<BODY>

<?php

mysql_connect("localhost","root","root") or die ("Nieudana proba polaczenia z baza");

mysql_select_db('test_klient') or die ("Nieudana proba polaczenia z baza");

/*INSERT*/

$query = "INSERT INTO kontrahent (IMIE,NAZWISKO) VALUES ('$IMIE','$NAZWISKO')";

$result = mysql_query($query);
print("<BR>");
print("<BR>");

if ($result >0)
{
print("Dane zostały zapisane w bazie TEST_KLIENT, tabela: KONTRAHENT");
} else {
print("Nieudany zapis do bazy");
}

?>

</BODY>
</HTML>

Odpalam test.php, wypelniam formularz i daje submit. W bazie mySQL w tabeli KONTRAHENT dopisuje sie (INSERT) nowy rekord - ale bez wypełnionych pol: IMIE, NAZWISKO - tylko klucz (autoincrement) sie zmienia.

Nie wiem dlaczego php wyrzuca mi komunikat:

Notice: Undefined variable: IMIE in d:\maja\apache\apache\htdocs\maja\insert.php on line 18

Notice: Undefined variable: NAZWISKO in d:\maja\apache\apache\htdocs\maja\insert.php on line 18

przeciez ustalajac NAME="IMIE" i "NAZWISKO" i odwolujac sie do tego w insert.php w INSERT $IMIE, $NAZWISKO powinno byc wszystko OK-nie wiem o co chodzi z tymi zmiennymi niezdefiniowanymi.
Stig
Administrator
Posty: 938
Rejestracja: pn paź 04, 2004 10:52 am

Re: Problem z formularzem - INSERT to MySQL

Post autor: Stig »

Problem jest pewnie ze zmiennymi globalnymi. Zmień nazwy zmiennych na $_POST['imie'] i $_POST['nazwisko'] czyli:

[php]<?php
$query = "INSERT INTO kontrahent (IMIE,NAZWISKO) VALUES ('.$_POST['IMIE'].','.$_POST['NAZWISKO'].')";
?>[/php]
Powinno zadziałać.
tmz
Nowy
Nowy
Posty: 63
Rejestracja: ndz sty 16, 2005 10:16 am
Kontakt:

Re: Problem z formularzem - INSERT to MySQL

Post autor: tmz »

$query = "INSERT INTO kontrahent (IMIE,NAZWISKO) VALUES ('".$_POST["IMIE"]."','".$_POST["NAZWISKO"]."')";

O ile sie gdzies nie machnalem :]
zabora
Posty: 8
Rejestracja: ndz sty 16, 2005 11:59 am

Dziekuje

Post autor: zabora »

OK, dziekuje Wam, zadzialo teraz.Mozna isc dalej...:)
ODPOWIEDZ