Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z dodawaniem "0" do bazy mysql za pomocą formularza
Forum PHP.pl > Forum > Gotowe rozwiązania > Skrypty obsługi baz danych
arek1983
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.'
?>
i-skrypty.pl
daj bez ' w zapytaniu
arek1983
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 smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.