![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
mam pewien (dość istotny) problem z instrukcją UPDATE z poziomu skryptu php. Otóż jeżeli chcę update'ować pole i wstawić w nie wartość zmiennej to do bazy przekazywana jest wartość pusta zamiast prawdziwej wartości zmiennej. skrypt wyglada tak
instrukcja UPDATE sama w sobie działa - jeżeli w miejsce $nazwa_kat_nowy wstawie cokolwiek np.
to instrukcja się wykona i w bazie zostanie zapisana "zmieniona kategoria" w wierszu z id_kat odpowiadającym $id, jednak jeżeli jest zmienna to w bzie zapisuje się puste pole. wszystkie instrukcje echo które są w kodzie mają na celu sprawdzenie jaka jest wartość zmiennej $nazwa_kat_nowy - jest jak najbardziej prawidłowa tzn taka jak podałem w formularzu. będe wdzięczny za jakąkolwiek pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
a mozesz pokazac co wyswietla
echo $zapytanie; dla przykladowych danych co ci nie dzialaja? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Dodaj:
i jeśli wyświetla Ci się błąd to podaj jaki. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 10.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
witam,
pomin ta linijke: $nazwa_kat_nowy=$_POST['nazwa_kat_nowy']; reszte pozostaw bez zmian php/mysql domyslnie odwoluje sie do posta i geta i nie trzeba tej zmiennej deklarowac ;] i powinno dzialac ;] ewentualnie sprawdz jakie dane zapisujesz do bazy a jaki typ pola w bazie masz zadeklarowany ![]() Ten post edytował lewy87r 12.05.2008, 12:57:20 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
@up
Ale wypada nie pisać w ten sposób, tylko jednak z frazą $_POST, imo to nie ta linijka powoduje błąd. Straszliwie nieładnie i nieprofesjonalnie jest zczytywać w ten sposób na marginesie. Poza tym w ten sposób jest prościej kontrolować dane pochodzące od użytkowniika. Ba, niech ktoś w get doda zmienną o takiej samej nazwie i bez filtrowania danych będzie trochę zamieszania pewnie. Kiedyś miałam podobny błąd, tylko z innego typu zapytaniem. Bodajże pomogło mi niewpisywanie zapytania w jednym łańcuchu, tylko łączenie łańcuchów, ale bądź co bądź przychylam się do prośby o wstawienie tego, co wypluwa mysql_error Ten post edytował Shili 12.05.2008, 13:04:47 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat a mozesz pokazac co wyswietla echo $zapytanie; dla przykladowych danych co ci nie dzialaja? dla $nazwa_kat_nowy='test' wyświetla
Cytat i jeśli wyświetla Ci się błąd to podaj jaki. nie wyświetla błędu i dlatego nie mogę znaleźć rozwiązania Cytat reszte pozostaw bez zmian php/mysql domyslnie odwoluje sie do posta i geta i nie trzeba tej zmiennej deklarowac ;] i powinno dzialac ;] nie działa Cytat ewentualnie sprawdz jakie dane zapisujesz do bazy a jaki typ pola w bazie masz zadeklarowany typ pola - VARCHAR |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat dla $nazwa_kat_nowy='test' wyświetla SQL UPDATE kategorie SET nazwa='test' WHERE id_kat= '4' hmmm, dziwne. To mowisz ze gdy zamiast zmiennej dasz poprostu 'test' to wowczas zadziala? To moze w takim razie jakis dziwne białe znaki idą postem. spróbuj dac trim na zmiennej
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat To mowisz ze gdy zamiast zmiennej dasz poprostu 'test' to wowczas zadziala? dokładnie tak Cytat spróbuj dac trim na zmiennej niesttey , bez zmian ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj może zastosować taką składnię; nie mam pojęcia co prawda czy zadziała (skłaniam się ku nie nawet); w razie czego pomiń nawiasy klamrowe jeszcze. @edit Oczywiście zeżarłam apostrofy przy edycji; tak na marginesie. Ten post edytował Shili 12.05.2008, 13:44:01 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
też nie :/
echo jest ok ale nadal wysyła pustą zmienną. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Waliduj wszystko, co idzie postem, np. taką funkcją:
- jeśli są znaki nowej linii, to można też je od razu zamienić na <br /> (czy paragrafy, zależy jak leży). |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pokaż cały kod wraz z formularzem wtedy będzie łatwiej wszystkich przeanalizować
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Waliduj wszystko, co idzie postem, np. taką funkcją: waliduje się ładnie tylko nadal bez efektu w momencie zapisu do bazy danych Cytat Pokaż cały kod wraz z formularzem wtedy będzie łatwiej wszystkich przeanalizować Formularz wygląda tak : |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 10.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
wnioskuje ze przepisales to z bledem ;] ze "echo" konczy sie srednikiem ";"
a method="post" proponuje pisać method="POST" drukowanymi jak jest poprawnie ;] (moze jakies serwery inaczej interpretuja) |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
- nie używaj takich zapisów to unikniesz problemów. Tak jest lepiej: Kod echo '<form action="index.php?name=admin_kat_edycja&id_kat="'.$id_kat.'" method="post">'; - a w ogóle najlepiej kod HTML trzymać w templatkach a zmienne tylko podstawiać. Nie zwróciłeś uwagi, że w adresie nie masz zmiennnej? ![]() |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat wnioskuje ze przepisales to z bledem ;] ze "echo" konczy sie srednikiem ";" fakt, mój błąd Cytat a method="post" proponuje pisać method="POST" drukowanymi jak jest poprawnie ;] (moze jakies serwery inaczej interpretuja) też nie działa. Swoją drogą testowałem to na 3 serwerach z takim samym skutkiem :/ Cytat Nie zwróciłeś uwagi, że w adresie nie masz zmiennnej? jakiej zmiennej ![]() ![]() |
|
|
![]()
Post
#17
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
a method="post" proponuje pisać method="POST" drukowanymi jak jest poprawnie ;] (moze jakies serwery inaczej interpretuja) Skąd to wywróżyłeś? Z fusów?A teraz czytamy specyfikację: Element and attribute names must be in lower case a później specyfikację znacznika form gdzie jak byk: Cytat <!ATTLIST form Mi to wygląda na małe litery. A Tobie?%attrs; action %URI; #REQUIRED method (get|post) "get" enctype %ContentType; "application/x-www-form-urlencoded" onsubmit %Script; #IMPLIED onreset %Script; #IMPLIED accept %ContentTypes; #IMPLIED accept-charset %Charsets; #IMPLIED > No chyba, że mówisz o przestarzałej specyfikacji HTML 4.01. Jest ona sprzed 9 lat, więc to trochę staroć. |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie ma co gdybać kiedy nie znamy całości kodu. Pokazujesz części a błąd może leżeć gdzieś indziej.
-------------------- |
|
|
--lewy87r-- |
![]()
Post
#19
|
Goście ![]() |
Dobra, to ja bym spróbował zmienić nazwe pola nie "nazwa_nowy_kat" tylko cos takiego: "nazwaxx2" moze niskie spacje mają jakiś wpływ:/ (conajmniej dziwne by to bylo)
może z jakiś względów trzeba dodać do forma enctype?? enctype="application/x-www-form-urlencoded" |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat jakiej zmiennej Przecież nowa nazwa kategorii jest z formularza - a to:? Mi to wygląda na id pobierane z adresu... $zapytanie = "selekt coś tam" Weź teraz echo $zapytanie i się dowiesz, czy zapytanie jest poprawne albo co jest źle. Inaczej nigdy się nie dogadamy. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 16:45 |