Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nie dodaje pola "$cena" do mysql
Forum PHP.pl > Forum > Przedszkole
serwislap
Witam mam następujący problem.
Jestem w trakcie pisania systemu do obsługi firmy a dokładnie skryptu do obsługi serwisu komputerowego.
Mam taki fragment kodu:
  1. // dodaje info do notesu po wybraniu subiekta..
  2. //Tu dodajemy godzinę do wpisu i cenę - godzina to zmienna $czas
  3. $czas = date("H:i:s");
  4. $nazwa = 'serwis [subiekt]: Nr: '.$id. ' Cena : '.$cena.'';
  5. $cena = $rata*(-1);
  6. $u_login = 'System - '.$_SESSION['admin']['login'];
  7. mysql_query("INSERT INTO notes SET nazwa='$nazwa', idk='$id', cena='$cena', data=NOW(), czas='$czas', nicrewzam=1, dodal='$u_login'");

Chodzi o to że po dodaniu i potem kiedy wyświetlam wynik powinienem otrzymać coś takiego :
  1. 2 2011-12-06 21:32:16 serwis [subiekt]: Nr: 796 Cena : 545


Jednak wszystko mi działa na localhoście a jak już zapodam na serwer to skrypt nie dodaje mi zmiennej cena tak jak by nie chciał jej dodać do bazy danych .

Obie bazy i na serwerze i na localhoście mają identyczną strukturę.
Może ktoś pomoże wybrnąć z tej sytuacji.
croc
Prawdopodobnie coś jest nie tak ze zmienną $rata. Sprawdź co ta zmienna zawiera.
  1. var_dump($rata);
serwislap
Tam jest wszystko ok, ta zmienna odpowiada za rozliczenie dnia jeśli dodajemy dłużnika a nie rozliczamy tego rewersu od razu.
Dziwne jest to że na lokalnym serwerze gdzie testuje skrypt zanim trafi na serwer wszystko działa ok i dodaje te zmienną cena a jak dam na serwer to nie jak by to było coś od konfiguracji serwera
croc
Ale co w ogóle zawiera zmienna $cena? Sprawdziłeś to? Możesz też po mysql_query() dodać or die(mysql_error()), tak:

  1. mysql_query(treść zapytania) or die(mysql_error());
serwislap
Nie ma błędu... tak myślę że to coś z konfiguracją może php lub mysql. Albo wersja. Dziwne że na jednym serwerze ok a na drugim nie.
croc
A sprawdziłeś to co zaproponowałem czy ot tak sobie mówisz: nie ma błędu? Bo cudów nie ma, jeśli zapytanie nie zwraca błędu i zmienna nie jest pusta, to NIE MA PRAWA się nie wstawić.
serwislap
Jeśli zapodam :
  1. // dodaje info do notesu po wybraniu subiekta..
  2.  
  3. //Tu dodajemy godzinę do wpisu i cenę - godzina to zmienna $czas
  4.  
  5. $czas = date("H:i:s");
  6.  
  7. $nazwa = 'serwis [subiekt]: Nr: '.$id. ' Cena : '.$cena.'';
  8.  
  9. $cena = $rata*(-1);
  10.  
  11. $u_login = 'System - '.$_SESSION['admin']['login'];
  12.  
  13. mysql_query("INSERT INTO notes SET nazwa='$nazwa', idk='$id', cena='$cena', data=NOW(), czas='$czas', nicrewzam=1, dodal='$u_login'") or die(mysql_error());


To wszystko przebiega ok. Natomiast nie pobiera mi wartości z pola cena i wpisuje do "notes"
Nie jestem biegły w php wszystkiego uczę się sam, niektóre rzeczy metodą prób i błędów.
croc
Dobrze. Nad mysql_query zrób to co mówiłem, czyli:
  1. var_dump($cena);

I napisz co wypisało. Oczywiście chodzi mi o sprawdzenie tego na serwerze zewnętrznym.
serwislap
  1. int(0)


I biała strona
croc
No to masz odpowiedź. Cena jest zerem i tak jak mówiłem na samym początku, to tutaj jest coś nie tak.
nospor
Moja szklana kula mówi mi, że chodzi o register_globals.

Do danych z forma należy się odwoływać
nie: $zmienna
a: $_POST['zmienna'];

Polecam też dokładną lekturę tego:
Temat: Jak poprawnie zada pytanie
Jest tam wiele cennych wskazówek dla takich początkujących jak ty
serwislap
Zgadza się smile.gif szklana kula jest wielka. Bardzo dziękuje za pomoc. Po włączeniu register_globals = On
on jest gitara smile.gif

Dziękuję jeszcze raz !

A przy okazji nauczyłem się jak sobie raportować błędy smile.gif
nospor
Cytat
Po włączeniu register_globals = On
źle. Wyrażnie napisałem:
Cytat
nie: $zmienna
a: $_POST['zmienna'];

Nie pogrążaj się w złym pisaniu kodu, tylko zacznij pisać poprawnie. register_globals to zło.
serwislap
  1. $cena = $_POST[rata]*(-1);


Teraz rozumiem. Poprawione i działa.
nospor
nie: $_POST[rata]
a: $_POST['rata']
Zdaje sie mialeś włączyc raportowanie wszystkich błędów.
serwislap
Przy $_POST[rata] nie wyrzuca błędów. Ale poprawię i sprawdzę.
nospor
Cytat
Przy $_POST[rata] nie wyrzuca błędów.
Bo nie włączyłeś raportowania wszystkich błędów. Masz o tym informację w linku, do którego cię odesłałem wcześniej. Naprawdę radzę ci jego lekture i zastosowanie się do niego. Unikniesz dzieki temu wielu problemów
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-2025 Invision Power Services, Inc.