• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed zmienna nie chce się dodać do bazy

Object Storage Arubacloud
0 głosów
181 wizyt
pytanie zadane 13 lutego 2016 w PHP przez wius2012 Początkujący (330 p.)
zamknięte 15 lutego 2016 przez wius2012

Witajcie

Napisałem formularz do zamówień pewnego produktu. 

Jest w tym formularzu lista jednokrotnego wyboru:

<input type="radio" name="dostawa" value="wysylka">wysyłka
<input type="radio" name="dostawa" value="odbior">odbiór na miejscu<br><br/>

i w pliku summary łapie te dwie wartości metodą POST, wszystko dobrze działa do momentu kiedy chcę dodać do bazy danych wartość do kolumny 'koszt'. 

$dostawa=$_POST['dostawa'];

if($dostawa=='odbior')
			{
				$koszt=$ilosc * x + $ilosc_dod * x;
				echo "Koszt twojego zamówienia wynosi:<b> $koszt zł</b><br/>";
			}
			else
			{
				$koszt2=$ilosc * x + $ilosc_dod * x + y;
				echo "Koszt twojego zamówienia wynosi:<b> $koszt2 zł</b><br/><br/";
			}


gdzie: x- koszt produktu
           y- koszt wysyłki
Ten prosty skrypt jest w podsumowaniu zamówienia i oblicza końcową kwotę zamówienia uwzględniając ewentualne koszty wysyłki

Ale ja chciałbym aby ten skrypt zapisał się do zmiennej $koszt, aby tą zmienną dodać do bazy danych. Uprzedzam że połączenie z baza jest OK i 9 innych wartości prawidłowo się dodają do bazy, a zmienna koszt za żadne skarby nie chce mi się dodać. Próbowałem wiele sposobów ale żaden mi nie pomógł
Proszę o pomoc 
Pozdrawiam
 

 

komentarz zamknięcia: Rozwiazane w w własnym zakresie

2 odpowiedzi

0 głosów
odpowiedź 13 lutego 2016 przez wius2012 Początkujący (330 p.)
$sql="INSERT INTO koszulki VALUES( '','$nick','$rozmiar','$ilosc','$rozmiar_dod','$ilosc_dod','$dostawa','$adres','$adres_dostawy','$uwagi',)";

Może i dobrze piszesz. Jak byś rozwiązał ten problem aby wynik tego  IF był zapisany do zmiennej???

komentarz 13 lutego 2016 przez Anysiu68 Użytkownik (820 p.)

A w którym miejscu dodajesz do bazy zmienną $koszt? W Twoim zapytaniu jest przecinek na końcu, a raczej go tam być nie powinno. Jeśli po nim dodajesz koszt spróbuj tak:

$dostawa=$_POST['dostawa'];
 
if($dostawa=='odbior')
            {
                $koszt=$ilosc * x + $ilosc_dod * x;
                echo "Koszt twojego zamówienia wynosi:<b> $koszt zł</b><br/>";
            }
            else
            {
                $koszt=$ilosc * x + $ilosc_dod * x + y;
                echo "Koszt twojego zamówienia wynosi:<b> $koszt2 zł</b><br/><br/";
            }

I teraz:

$sql="INSERT INTO koszulki VALUES( '','$nick','$rozmiar','$ilosc','$rozmiar_dod','$ilosc_dod','$dostawa','$adres','$adres_dostawy','$uwagi','$koszt')";

 

komentarz 13 lutego 2016 przez wius2012 Początkujący (330 p.)
$koszt= $ilosc * 35 + $ilosc_dod * 35 + $koszt_dos;	

Dodaje tą zmienną PRZED zapytaniem sql. Próbowałem zmieniać nazwę zmiennej $koszt na inne nazwy aby sie nie powielały[oczywiscie w zapytaniu sql również] i to nic nie dawało 

komentarz 13 lutego 2016 przez Anysiu68 Użytkownik (820 p.)
To rozumiem, ale nie widać gdzie dodajesz go do bazy. Przeczytaj mój poprzedni komentarz, trochę go edytowałem.
komentarz 13 lutego 2016 przez wius2012 Początkujący (330 p.)

albo cały skrypt ci wklepie poczekaj...

$nick=$_POST['nick'];
	$rozmiar=$_POST['rozmiar'];
	$ilosc=$_POST['ilosc'];
	$rozmiar_dod=$_POST['rozmiar2'];
	$ilosc_dod=$_POST['ilosc2'];
	$dostawa=$_POST['dostawa'];
	$adres=$_POST['adres'];
	$adres_dostawy=$_POST['adres_dostawy'];
	$uwagi=$_POST['uwagi'];
	
	$koszt= $ilosc * 35 + $ilosc_dod * 35 + $koszt_dos;	
	
	require_once"connect.php";
	
	$polaczenie= @new mysqli($host, $db_user, $db_password, $db_name);
	$polaczenie -> query ('SET NAMES utf8');
	$polaczenie -> query ('SET CHARACTER_SET utf8_unicode_ci');
	if($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_erno;
	}
	else
	{	
		$sql="INSERT INTO koszulki VALUES( '','$nick','$rozmiar','$ilosc','$rozmiar_dod','$ilosc_dod','$dostawa','$adres','$adres_dostawy','$uwagi','$koszt')";
		$rezultat=$polaczenie->query($sql);
		
		
		if($rezultat) 
		{
			echo "Zamówienie zostało wysłane<br/>"; 
		}	
		else 
		{
			echo "Błąd nie udało się wysłać zgloszenia. Skontaktuj się z administratorem"; 
		}
		$polaczenie->close();
	}

To jest cały skrypt zarządzający bazą danych. Wszystkie zmienne są dobrze umieszczane lecz zmienna $koszt ma z tym problem

komentarz 13 lutego 2016 przez Anysiu68 Użytkownik (820 p.)
Spróbuj wypisać echem koszt zaraz pod jego obliczeniem. Drugi test to wpisanie ręcznie czegoś do bazy w miejsce kosztu np. "test". Może chodzić o to, że php zmienną koszt traktuje jako tekst a nie jako liczbę. Wtedy zrób coś takiego: $koszt = (int)$zmienna przy wszystkich zmiennych które mnożyć. Daj znać czy to pomoże. Pozdrawiam.
komentarz 13 lutego 2016 przez wius2012 Początkujący (330 p.)

w bazie danych kolumna "koszt" jest typu INT

przed zapytaniem sql zrobiłem w tej linice tak jak napisales:

$koszt= (int)$ilosc * 35 + (int)$ilosc_dod * 35;	

ale nic to nie pomogło.... ;(

ciagle wyświetla się informacja że zmienna 'koszt' nie została zdefiniowana. i jest to na poczatku skryptu bo to jest linia 45 i na to wychodzi ze jest to moment kiedy otwiera sie sekcja z zapytaniem sql i chodzi o zmienna w zapytaniu.

komentarz 13 lutego 2016 przez Anysiu68 Użytkownik (820 p.)
Spróbuj wpisać dla testu coś takiego:
$koszt = 44;

 

komentarz 13 lutego 2016 przez wius2012 Początkujący (330 p.)

nw musi być jakiś nadzywczajny problem bo nawet tej wartości nie przechwytuje

$nick=$_POST['nick'];
	$rozmiar=$_POST['rozmiar'];
	$ilosc=$_POST['ilosc'];
	$rozmiar_dod=$_POST['rozmiar2'];
	$ilosc_dod=$_POST['ilosc2'];
	$dostawa=$_POST['dostawa'];
	$adres=$_POST['adres'];
	$adres_dostawy=$_POST['adres_dostawy'];
	$uwagi=$_POST['uwagi'];
	$koszt_d= 44;
	
	
	
	require_once"connect.php";
	
	$polaczenie= @new mysqli($host, $db_user, $db_password, $db_name);
	$polaczenie -> query ('SET NAMES utf8');
	$polaczenie -> query ('SET CHARACTER_SET utf8_unicode_ci');
	if($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_erno;
	}
	else
	{	
		
		$sql="INSERT INTO koszulki VALUES( '','$nick','$rozmiar','$ilosc','$rozmiar_dod','$ilosc_dod','$dostawa','$adres','$adres_dostawy','$uwagi','$koszt_d')";
		$rezultat=$polaczenie->query($sql);
		
		
		if($rezultat) 
		{
			echo "Zamówienie zostało wysłane<br/>"; 
		}	
		else 
		{
			echo "Błąd nie udało się wysłać zgloszenia. Skontaktuj się z administratorem"; 
		}
		$polaczenie->close();
	}

 

komentarz 13 lutego 2016 przez Anysiu68 Użytkownik (820 p.)

Spróbuj takie zapytanie:

$sql="INSERT INTO koszulki VALUES( '','$nick','$rozmiar','$ilosc','$rozmiar_dod','$ilosc_dod','$dostawa','$adres','$adres_dostawy','$koszt_d')";

 

komentarz 13 lutego 2016 przez wius2012 Początkujący (330 p.)
nic a nic. Chyba zrezygnuje z tej kolumny w tabeli, ja sie z tym mecze od wczoraj.
Dzieki za pomoc i czas ;)

Moze mnie jeszcze jakoś olśni ;)
komentarz 13 lutego 2016 przez Anysiu68 Użytkownik (820 p.)

Spróbuj jeszcze tego:

$sql="INSERT INTO koszulki (koszt) VALUES('$koszt_d')";

 

komentarz 13 lutego 2016 przez wius2012 Początkujący (330 p.)
edycja 13 lutego 2016 przez wius2012
Lipa

Dobra dziękuję za pomoc i za poświecony czas. Obejde to i napisze skrypt w innych plikach to moze tam to przejdzie. Nw czemu jest taki problem ale ok.

Pozdrawiam i dzięki.

EDIT:

Przezucilem wszystko do nowego pliku php i o dziwo nie mam zadnych problemow. wszystkie instrukcje dzialaja. Wychodzi na to ze sie skrypt "zawieszal". Teraz wszystko jest ok. szkoda ze teraz na to wpadlem
–1 głos
odpowiedź 13 lutego 2016 przez Anysiu68 Użytkownik (820 p.)
Witaj,

pokaż jeszcze zapytanie do bazy danych. A tak na pierwszy rzut oka to podczas wysyłki nie tworzysz zmiennej koszt tylko koszt2 więc $koszt nie istnieje. Tak przynajmniej wynika z tego fragmentu.

Pozdrawiam.
komentarz 13 lutego 2016 przez wius2012 Początkujący (330 p.)
jest w komentarzu wyżej cały proces. Nadmienie że wszystkie zmienne są prawidłowo przesyłane i wyświetlane poźniej przez bazę danych. Problem tkwi z ta kolumną koszt do ktorej teraz wstawiłem zmienną $koszt_d. Ale i tak nic to nie daje.

Zmieniałem też metody danych z INT na TEXT i tak to nic nie dawało

Podobne pytania

0 głosów
4 odpowiedzi 2,030 wizyt
pytanie zadane 14 września 2020 w SQL, bazy danych przez mat19 Obywatel (1,580 p.)
0 głosów
1 odpowiedź 423 wizyt
0 głosów
1 odpowiedź 684 wizyt
pytanie zadane 2 kwietnia 2017 w SQL, bazy danych przez MrSanten Nowicjusz (120 p.)

92,628 zapytań

141,491 odpowiedzi

319,862 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...