Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z dodawaniem "0" do bazy mysql za pomocą formularza
arek1983
post 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.'
?>
Go to the top of the page
+Quote Post
i-skrypty.pl
post 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
Go to the top of the page
+Quote Post
arek1983
post 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 smile.gif
Go to the top of the page
+Quote Post

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: 20.04.2024 - 04:19