[PHP+MySQL] Dodawaniedanych do tabeli przez formularz...

0

Witam.
Po dłuższej przerwie wróciłem do tworzenia stron. Zaczynam sie uczyć MySQL'a. I już napotkałem 1-szy problem. Próbuję dodać dane do tabeli poprzez formularz ale coś mi nie wychodzi. Oto kod:

<?php

if ($slowo != null) {

 $sql_conn = mysql_connect('localhost', 'root', 'krasnal');
 mysql_select_db('slownik');

 $slowo = $_POST['slowo'];
 $wymowa = $_POST['wymowa'];
 $tlum_1 = $_POST['tlum_1'];
 $tlum_2 = $_POST['tlum_2'];
 $tlum_3 = $_POST['tlum_3'];
 $tlum_4 = $_POST['tlum_4'];
 $tlum_5 = $_POST['tlum_5'];

 $zapytanie = "INSERT INTO 'ang_pol' (`id`, `slowo`, `wymowa`, `tlum_1`, `tlum_2`, `tlum_3`, `tlum_4`, `tlum_5`) VALUES (``, `$slowo`, `$wymowa`, `$tlum_1`, `$tlum_2`, `$tlum_3`, `$tlum_4`, `$tlum_5`)";
 $idzapytania = mysql_query($zapytanie);

 mysql_close($sql_conn);
}

?>

<center>
<form action="dodaj.php" method="post">
 Słowo (ang): <input type="text" name="slowo" maxlenght="50"><br>
 Wymowa: <input type="text" name="wymowa" maxlenght="50"><br>
 Tłumaczenia: <input type="text" name="tlum_1" maxlenght="50"> <input type="text" name="tlum_2" maxlenght="50"> <input type="text" name="tlum_3" maxlenght="50"> <input type="text" name="tlum_4" maxlenght="50"> <input type="text" name="tlum_5" maxlenght="50"><br>
 <input type="submit" value="Dodaj"><input type="reset" value="Anuluj">
</form>
</center>

Jeśli ktoś wie co jest nie tak i wie jak to poprawić to proszę o pomoc. Dodam jeszcze, że żaden błąd nie wyskakuje, po prostu po kliknięciu dodaj strona się przeładowuje, a dane się nie dodają :/

P.S: Jak ktoś zna dobry kurs MySQL'a to proszę o linka...

0
<?php

if ($slowo != null) {  // <- tu sprawdzasz zawartosc $slowo ,chyba chodzilo ci o if(!empty($_POST['slowo']))

 $sql_conn = mysql_connect('localhost', 'root', 'krasnal');
 mysql_select_db('slownik');

 $slowo = $_POST['slowo'];  // <- a tu do slowo przypisujesz wartosc ktora chcesz sprawdzic
 $wymowa = $_POST['wymowa'];
 $tlum_1 = $_POST['tlum_1'];
 $tlum_2 = $_POST['tlum_2'];
 $tlum_3 = $_POST['tlum_3'];
 $tlum_4 = $_POST['tlum_4'];
 $tlum_5 = $_POST['tlum_5'];

 $zapytanie = "INSERT INTO 'ang_pol' (`id`, `slowo`, `wymowa`, `tlum_1`, `tlum_2`, `tlum_3`, `tlum_4`, `tlum_5`) VALUES (``, `$slowo`, `$wymowa`, `$tlum_1`, `$tlum_2`, `$tlum_3`, `$tlum_4`, `$tlum_5`)";  //INSERT INTO ang_pol <- a nie 'and_pol', po drugie nie dodawaj nic do pola id, bo to pewnie autoincrement i baza zadba o to co powinno tam być, i jeszcze: nazwy kolumn bez apostrofów
 $idzapytania = mysql_query($zapytanie);

 mysql_close($sql_conn);
}

?>

<center>
<form action="dodaj.php" method="post">
 Słowo (ang): <input type="text" name="slowo" maxlenght="50"><br>
 Wymowa: <input type="text" name="wymowa" maxlenght="50"><br>
 Tłumaczenia: <input type="text" name="tlum_1" maxlenght="50"> <input type="text" name="tlum_2" maxlenght="50"> <input type="text" name="tlum_3" maxlenght="50"> <input type="text" name="tlum_4" maxlenght="50"> <input type="text" name="tlum_5" maxlenght="50"><br>
 <input type="submit" value="Dodaj"><input type="reset" value="Anuluj">
</form>
</center>

Myślę, że głównym powodem było sprawdzanie if( $slowo != null), bo na początku jest zawsze null, a nawet go nie ma i powinieneś zobaczyć warning o nieistniejącej zmiennej, o ile masz załączone warningi.

0

Zdaje mi się, że poprawiłem wszystko co podałeś, ale nadal nie chodzi :/

0

To przede wszystkim dwie sprawy:

  1. error reporting na E_ALL, show errors na on.
  2. sprawdź mysql_error po wykonaniu zapytania.
0

uruchom:

<?php

if (!empty($_POST['slowo'])){

 $sql_conn = mysql_connect('localhost', 'root', 'krasnal') or die('Blad polaczenia');
 echo 'Still alive ';
 mysql_select_db('slownik');

 $slowo = $_POST['slowo'];
 $wymowa = $_POST['wymowa'];
 $tlum_1 = $_POST['tlum_1'];
 $tlum_2 = $_POST['tlum_2'];
 $tlum_3 = $_POST['tlum_3'];
 $tlum_4 = $_POST['tlum_4'];
 $tlum_5 = $_POST['tlum_5'];

 $zapytanie = "INSERT INTO ang_pol (`slowo`, `wymowa`, `tlum_1`, `tlum_2`, `tlum_3`, `tlum_4`, `tlum_5`) VALUES ('$slowo', '$wymowa', '$tlum_1', '$tlum_2', '$tlum_3', '$tlum_4', '$tlum_5')";
 $idzapytania = mysql_query($zapytanie);

 echo mysql_error();
 mysql_close($sql_conn);
}

?>

daj rezultat

0
<?php

if(!empty($_POST['slowo'])){

 $sql_conn = mysql_connect('localhost', 'root', 'krasnal');
 mysql_select_db('slownik');

 $slowo = $_POST['slowo'];
 $wymowa = $_POST['wymowa'];
 $tlum_1 = $_POST['tlum_1'];
 $tlum_2 = $_POST['tlum_2'];
 $tlum_3 = $_POST['tlum_3'];
 $tlum_4 = $_POST['tlum_4'];
 $tlum_5 = $_POST['tlum_5'];

 $zapytanie = "INSERT INTO ang_pol (slowo, wymowa, tlum_1, tlum_2, tlum_3, tlum_4, tlum_5) VALUES ('$slowo', '$wymowa', '$tlum_1', '$tlum_2', '$tlum_3', '$tlum_4', '$tlum_5')";
 $idzapytania = mysql_query($zapytanie);

 mysql_close($sql_conn);
}

?>

Tak jest wszytko ok... Jak chcecie się trochę pośmiań to Wam powiem jaki był błąd. Zmieniałem niemalże wszystko po kilka razy. Przynajmniej 4 sposoby były ok. Ale 1 błąd który był zawsze i wszystko psuł to złe apostrofy przy wartościach - $slowozamiast '$slowo' - ukośne zamiast krzywych (nawet nie wiem skąd mi się tam wzięły)... [glowa]

1 użytkowników online, w tym zalogowanych: 0, gości: 1