Problem z dodawaniem "0" do bazy mysql za pomocą formularza |
Problem z dodawaniem "0" do bazy mysql za pomocą formularza |
20.04.2012, 11:05:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.04.2012 Ostrzeżenie: (0%) |
Witam
Jestem początkujacym użytkownikiem - szczerze mówiąc pierwszy raz robię coś w mysql i php. Mam taki problem, a mianowicie nie mogę dodać wartości '0' do bazy danych mysql z formularza php. Nie mam pojęcia, co należałoby zmienić w moim skrypcie, który przedstawiam ponizej, żeby była rozpoznawana wartość '0'. Po wprowadzeniu '0' w formularzu wyskakuje mi komunikat, tak jakby to było puste, niewypełnione pole. W każdym innym przypadku przetestowany skrypt dobrze śmiga. Analizując mój poniższy skrypt, wychwytując jakieś niedociagnięcia, ktorych pewnie jest dużo, będę wdzięczny za zgłoszenie mi uwag, co mógłbym poprawić. <?php $Data_Emisji = trim($_POST['Data_Emisji']); $Nazwa_Monety = $_POST['Nazwa_Monety']; $Kolekcja = $_POST['Kolekcja']; $Naklad = trim($_POST['Naklad']); $Sztuk = trim($_POST['Sztuk']); if (!$Data_Emisji || !$Nazwa_Monety || !$Naklad || !$Sztuk) { echo 'Nie podano wszystkich wymaganych danych, niezbędnych do zapisania monety w bazie.<br />' .'Wróć do poprzedniej strony i spróbuj jeszcze raz.'; exit; } if (!get_magic_quotes_gpc()) { $Data_Emisji = doubleval($Data_Emisji); $Nazwa_Monety = addslashes($Nazwa_Monety); $Kolekcja = addslashes($Kolekcja); $Naklad = doubleval($Naklad); $Sztuk = doubleval($Sztuk); } //===================================================== if(is_numeric($Data_Emisji) and ($Naklad) and ($Sztuk)) { //poprawny } else { echo 'Nie poprawny Rok Emisji.<br />' .'Wróć do poprzedniej strony i spróbuj jeszcze raz.'; exit; } if(is_numeric($Naklad)) { //poprawny } else { echo 'Nie poprawny Nakład.<br />' .'Wróć do poprzedniej strony i spróbuj jeszcze raz.'; exit; } if(is_numeric($Sztuk)) { //poprawny } else { echo 'Nie poprawna Liczba Sztuk.<br />' .'Wróć do poprzedniej strony i spróbuj jeszcze raz.'; exit; } //======================================================= $connection = @mysql_connect('localhost', 'root', 'passwd') or die('Błąd - Nie mogę połączyć się z serwerem MySQL. Spróbuj później.'); $db = @mysql_select_db('test', $connection) or die('Błąd - Nie mogę połączyć się z bazą danych. Spróbuj później.'); $zapytanie = @mysql_query("INSERT INTO Monety SET Data_Emisji='$Data_Emisji', Nazwa_Monety='$Nazwa_Monety', Kolekcja='$Kolekcja', Naklad='$Naklad', Sztuk='$Sztuk'"); if ($zapytanie) echo 'Moneta została dodana poprawnie do bazy.' ?> |
|
|
20.04.2012, 11:08:08
Post
#2
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 8.02.2012 Ostrzeżenie: (0%) |
daj bez ' w zapytaniu
|
|
|
20.04.2012, 11:16:17
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.04.2012 Ostrzeżenie: (0%) |
Dzięki za dopowiedź, przetestuję, a w miedzy czasie zrobiłem coś takiego:
z warunku: if (!$Data_Emisji || !$Nazwa_Monety || !$Naklad || !$Sztuk) usunąłem !$Sztuk i terz śmiga, tzn. dodaje 0 a jak zostawiam puste niewypełnione pole to wyrzuca bład, zgodnie z kolejnym warunkiem: if(is_numeric($Sztuk)) { //poprawny } else { echo 'Nie poprawna Liczba Sztuk.<br />' .'Wróć do poprzedniej strony i spróbuj jeszcze raz.'; exit; } Nie wiem czy dobrze wykąbinowałem, ale zamierzony efekt końcowy jest |
|
|
Wersja Lo-Fi | Aktualny czas: 21.05.2024 - 14:40 |