![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 21.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam następujący problem szukam szukam i nie wiem gdzie tu jest błąd. Problem polega na tym że nie zapisuje mi $STGB03 do bazy.
Kod $query = "SELECT ID, NAME, ZDSA FROM `spts` where ID=1"; $result = mysql_query($query); while( $row = mysql_fetch_array( $result )){ $STGB01 .= $row[ 'ZDSA' ].''; } $STGB03 = trim($_POST['TSTGB01']); $wywietlSTEG = '<form action="" method="post"> <textarea name="TSTGB01" style="width: 300px; height: 200px;">'.$STGB01.' </textarea><br /> <form action="index.php" method="post"> <input type="hidden" name="STGB02" value="true"> <input type="submit" value="Zapisz" /> </form>'; if (isset($_POST['STGB02'])) { $zapytanie = "UPDATE `spts` SET `ZDSA` = '$STGB03' WHERE `id`='1'"; $idzapytania = mysql_query($zapytanie); } Pozdrawiam ok wszystko ok problem tkwi wyżej. Kod <?
if (isset($_POST['STEG'])) { Ten post edytował ArturEales 1.01.2009, 16:55:27 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie updaetuje się w ogóle tylko tak ci się wydaje? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ja tu widzę błąd logiczny, ale mogę się mylić. Po kolei: - masz formularz z wartością wyciągniętą z bazy - ok, - zatwierdzasz go i przesyłasz zmienne z formularza, - na początku skryptu wyciągasz starą wartość z bazy i przypisujesz do zmiennej ($STGB01), - później zajmujesz się zmienną przesłaną z formularza (przypisujesz ją do $STGB03, to jest ta nowa wartość tak?), - wyświetlasz formularz ze starą wartością (wyciągniętą wcześniej z bazy), - na końcu aktualizujesz rekord w bazie (tą nową wartością). Czyli - jeśli dobrze zrozumiałem - aktualizujesz bazę, ale sam sobie wyświetlasz starą wartość - shame on you (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) PS Dwa razy otwierasz tag form, ale to już na marginesie. Edit: Ups czyli mój błąd (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował ziqzaq 1.01.2009, 17:08:56 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 21.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Może powiem jak miało to działać...
1. Pobiera z bazy dzne i ładuje do formularza (do edycji) 2. po wprowadzeniu zmian klikamy zapisz i wartosć zmieniona zostaje wysłana do bazy. A w ogóle to całość wygląda tak Kod <?
if (isset($_POST['STEG'])) { $pmep01 = '1Pod Menu1'; $pmep02 = '1Pod Menu2'; $pmep03 = '1Pod Menu3'; $pmep04 = '1Pod Menu4'; $pmep05 = '1Pod Menu5'; $query = "SELECT ID, NAME, ZDSA FROM `spts` where ID=2"; $result = mysql_query($query); while( $row = mysql_fetch_array( $result )){ $STGB01 .= $row[ 'ZDSA' ].''; } $STGB03 = trim($_POST['TSTGB01']); $wywietlSTEG = '<form action="" method="post"> <textarea name="TSTGB01" style="width: 300px; height: 200px;">'.$STGB01.' </textarea><br /> action="index.php" method="post" <input type="hidden" name="STGB02" value="true"> <input type="submit" value="Zapisz" /> </form>'; if (isset($_POST['STGB02'])) { $zapytanie = "UPDATE `spts` SET `ZDSA` = '$STGB03' WHERE `id`='2'"; $idzapytania = mysql_query($zapytanie); } } ?> |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Może tak:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 21.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Napisałem coś takiego i mi nie działa... tz. po wciśnięciu przycisku ma się wyświetlać formularz i właśnie mi to nie działa nie wiem czemu.
to działa Kod <? $query = "SELECT ID, NAME, ZDSA FROM `spts` where ID=2"; $result = mysql_query($query); while( $row = mysql_fetch_array( $result )){ $STGB01 .= $row[ 'ZDSA' ].''; } $STGB03 = trim($_POST['TSTGB01']); echo '<form method="post"> <textarea name="TSTGB01" style="width: 300px; height: 200px;">'.$STGB01.' </textarea><br /><form method="post"> <input type="hidden" name="STGB02" value="true"> <input type="submit" value="Zapisz" /> </form>'; if (isset($_POST['STGB02'])) { $zapytanie = "UPDATE `spts` SET `ZDSA` = '$STGB03' WHERE `id`='2'"; $idzapytania = mysql_query($zapytanie); } ?> a tak już nie Kod if (isset($_POST['STEG']))
{ $query = "SELECT ID, NAME, ZDSA FROM `spts` where ID=2"; $result = mysql_query($query); while( $row = mysql_fetch_array( $result )){ $STGB01 .= $row[ 'ZDSA' ].''; } $STGB03 = trim($_POST['TSTGB01']); echo '<form method="post"> <textarea name="TSTGB01" style="width: 300px; height: 200px;">'.$STGB01.' </textarea><br /><form method="post"> <input type="hidden" name="STGB02" value="true"> <input type="submit" value="Zapisz" /> </form>'; if (isset($_POST['STGB02'])) { $zapytanie = "UPDATE `spts` SET `ZDSA` = '$STGB03' WHERE `id`='2'"; $idzapytania = mysql_query($zapytanie); } } |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie napisałeś po wciśnięciu jakiego przycisku, z innego formularza czy co?
A przesyłasz tą zmienną z innego formularza?
Poza tym zapis masz w tym if'ie:
a w formularzu nie masz takiej zmiennej jak "STEG", więc update się nie wykona:
Poza tym przeczytaj jeszcze raz mój pierwszy post bo mimo wyszystko chyba jednak mam w nim rację. Pozdrawiam. Edit: Acha. Nadal dwa razy masz otwarty tag form a ewidentnie chcesz stworzyć jeden formularz, to jest błąd. Edit: Apeluje o przeczytanie komentarzy w kodzie, które teraz dodałem. Ten post edytował ziqzaq 1.01.2009, 19:29:23 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 21.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ale o co ci w ogóle chodzi? NIE MA TAKIEJ ZMIENNEJ (TAKIEGO POLA) W PONIŻSZYM FORMULARZU przecież to nie do poniższego formularza bo formularz jest odpalany dopiero po wciśnięciu przycisku :
Kod <form action="index.php" method="post"> <table> <tr> <td> <input type="submit" name="STEG" value="Strona główna" class="submit" /> </td> </tr> </table> </form> Ten post edytował ArturEales 1.01.2009, 19:56:01 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Człowieku. Wskazuje ci błędy w twoim kodzie.
Nazewnictwo bo już się mieszamy chyba: - formularz nr. jeden - to ten który podałeś wyżej, przechodzimy nim do edycji. - formularz nr. dwa to ten który ja podałem czyli to ten którym edytujemy. Wysyłasz tą zmienną z pierwszego formularza (ta zmienna ma nazwę "STEG"). Posługujesz się nią by wyświetlić drugi formularz, w którym już nie ma takiej zmiennej (pola o nazwie "STEG"). Jak zatwierdzisz ten drugi formularz to poniższy warunek if (ten pierwszy poniżej) zwróci false i kod w nim się nie wykona: Nie wykona się również update bo jest w tym if'ie. (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Czy już rozumiesz o co mi chodzi? Ten post edytował ziqzaq 1.01.2009, 19:58:02 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 21.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nom załapałem masz jakiś pomysł rozwiązania tego problemu?
Ja zastanawiam się nad wstawieniem ewentualnie przycisku ale wtedy to się chyba zrypie co nieco... Chyba ze można to: if (isset($_POST['STEG'])) //czymś zastąpić co da podobny efekt OK zrobiłem tak i działa Kod <?
if (isset($_POST['STEG'])) { $pmep01 = '1Pod Menu1'; $pmep02 = '1Pod Menu2'; $pmep03 = '1Pod Menu3'; $pmep04 = '1Pod Menu4'; $pmep05 = '1Pod Menu5'; $query = "SELECT ID, NAME, ZDSA FROM `spts` where ID=2"; $result = mysql_query($query); while( $row = mysql_fetch_array( $result )){ $STGB01 .= $row[ 'ZDSA' ].''; } $STGB03 = trim($_POST['TSTGB01']); $sss = '<form method="post"> <textarea name="TSTGB01" style="width: 300px; height: 200px;">'.$STGB01.' </textarea><br /> <input type="hidden" name="STEG" value="true"> <input type="submit" value="Zapisz" /> </form>'; if (isset($_POST['STEG'])) { $zapytanie = "UPDATE `spts` SET `ZDSA` = '$STGB03' WHERE `id`='2'"; $idzapytania = mysql_query($zapytanie); } } Ten post edytował ArturEales 1.01.2009, 20:18:38 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
O to mi chodziło. No, prawie.
1. Teraz za każdym wyświetleniem formularza odbędzie się update bazy (nawet jak go wyswietlisz za pierwszym razem). 2. Jak zatwierdzisz zmiany w formularzu to nie będą one od razu widoczne. Sam sobie zobacz. Pokażę ci jak ja to widzę:
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 21.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi to nie działa
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 23:28 |