![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki oto problem. Mam zmienną, która sobie przechodzi pomiędzy formularzami i na pewno przechodzi dobrze bo wyświetlam ją sobie testowo na stronach. Problem mam, kiedy tą zmienną chcę albo insertem albo updatem wrzucić do tabeli. Do tabeli wrzuca wartość 0. I niestety nie wiem dlaczego. Generalnie skrypt działa, bo jak podstawię stałą wartość to jest umieszczana poprawnie w tabali. Natomiast ze zmienną się wali. Jakbym mógł prosić o małą wskazówkę. Kod poniżej. <?php include ("config.inc"); include("$HeaderNowaAnkieta"); session_start(); if ( isset($_GET['logout']) ) { switch($_GET['logout']) { case "tak": //$_SESSION = array(); session_unset(); session_destroy(); break; default: break; } } if ($_GET['dopisz']=='tak') { $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); $link = mysql_connect("$host", "$username", "$password") or die("Unable to connect to SQL server"); mysql_select_db("$db_name") or die("Unable to select database"); $IdAnkieterGlowny = $_GET['IdAnkieterGlowny]; $query = "INSERT INTO listaankiet (DataWypelnienia, AnkieterWypelniajacy, IdAnkieterGlowny, Host, Login, DataWprowadzeniaAnkiety) VALUES ( '".$_POST['DataWypelnienia']."', '".$_POST['AnkieterWypelniajacy']."', ,'$IdAnkieterGlowny', '$hostname','".$_SESSION['user_login']."',SYSDATE() )"; mysql_query($query) or die("Błąd 1 - listaankiet"); include($RedirectAnkieta); } ?> <html> <head> <meta content="text/html; charset=ISO-8859-2" http-equiv="content-type"> <title>Nowa ankieta</title> </head> <body style="background-color: rgb(204, 204, 204);"> <form action="NowaAnkieta.php?dopisz=tak" method="post"> <table cellpadding="2" cellspacing="2" border="0" style="text-align: left; width: 100%;"> <tbody> <tr> </tr> <tr> <td style="vertical-align: top; height: 50%; width: 50%;"> <table cellpadding="2" cellspacing="2" border="0" style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;"> <tbody> <tr> <td style="background-color: rgb(15, 0, 0); text-align: center; vertical-align: middle; height: 50%; width: 50%;"><span style="font-weight: bold; color: rgb(255, 255, 255);">Dane ankiety</span><br> </td> </tr> </tbody> </table> <div style="text-align: center;"><span style="font-weight: bold; color: rgb(51, 51, 153);">Data wypełnienia akiety<br></span> <input type="text" name="DataWypelnienia" size="45" maxlength="45"><br> <div style="text-align: center;"><span style="font-weight: bold; color: rgb(51, 51, 153);">Ankieter wypełniający ankietę<br></span> <input type="text" name="AnkieterWypelniajacy" size="45" maxlength="45"><br> </td> </tr> </tbody> </table> <?php echo $IdAnkieterGlowny;?> //testowe wyswietlenie wartosci zmiennej - jest OK <hr style="width: 100%; height: 2px;"> <hr style="width: 100%; height: 2px;"> <table cellpadding="2" cellspacing="2" border="0" style="text-align: left; width: 20%;"> <tbody> <tr> <td style="vertical-align: top;"> <p><input type="submit" name="submit" value="Dodaj ankietę"> </p> </td> <td style="vertical-align: top;"> <p><input type="reset" name="reset" value="Anuluj wprowadzone dane"> </p> </td> </tr> </tbody> </table> </form> </body> </html> Dziękuję za wszelkie wskazówki, bo coś utknąłem a zaliczenie się zbliża. Piotrek |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 850 Pomógł: 120 Dołączył: 15.02.2007 Skąd: Łódź Ostrzeżenie: (10%) ![]() ![]() |
ale która zmienna?? popraw kod umieś go w znaczniki
Kod [php][/php] Kod [html][/html]
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tą moją felerną zmienną jest $IdAnkieterGlowny = $_GET['IdAnkieterGlowny];
Jest ona kluczem głównym w jednej tabeli i teraz przy tym skrypcie chciałbym ją umieścić w innej tabeli. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 850 Pomógł: 120 Dołączył: 15.02.2007 Skąd: Łódź Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
przed samym insertem daj
Kod echo $IdAnkieterGlowny; i będziesz wiedział, czy masz na pewno coś w tej zmiennej.. no i faktycznie brak cudzysłowu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) poza tym, jeśli id jest zapewne liczbą, to po co w insercie ujmujesz ją w cudzysłowy '$IdAnkieterGlowny' - możesz je sobie odpuścić... Ten post edytował nitek 15.03.2009, 22:00:30 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak najbardziej w linku, jest ?, przechodzi prawidłowa wartość, testowo go wyświetlam i jest OK, ale jakimś uporem (który pewnie jest błędem w programie) nie chce zainsertować się do tabeli.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
możesz podać cały przykładowy link, na jakim testujesz? może tu jest problem..
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hmm może tu jest coś źle, Zmienna na pewno jest liczbą, echo daje eleganckie np. 2, ale jak usunąłem '' z inserta to zapytanie wyrzuciło błąd.
Jak zrobiłem '$IdAnkieterGlowny' to zapytanie poszło, ale z pustą wartością IdAnkieterGlowny. Czyżby gdzieś po drodze int zmienił się w np. char? W tabeli skąd jest to pobierane IdAnkieterGlowny jest int. http://localhost/NowaAnkieta.php?IdAnkieterGlowny=2 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
z tego co widze, masz skopane zapytanie
Kod $query = "INSERT INTO listaankiet (DataWypelnienia, AnkieterWypelniajacy, IdAnkieterGlowny, Host, Login, DataWprowadzeniaAnkiety) VALUES ( '".$_POST['DataWypelnienia']."', '".$_POST['AnkieterWypelniajacy']."', ,'$IdAnkieterGlowny', '$hostname','".$_SESSION['user_login']."',SYSDATE() )"; zmień na: Kod $query = "INSERT INTO listaankiet (DataWypelnienia, AnkieterWypelniajacy, IdAnkieterGlowny, Host, Login, DataWprowadzeniaAnkiety) VALUES ('".$_POST['DataWypelnienia']."','".$_POST['AnkieterWypelniajacy']."','$IdAnkieterGlowny','$hostname','".$_SESSION['user_login']."',SYSDATE())"; miales dwa przecinki przed IdAnkieterGlowny... do tego dochodzi druga sprawa.z doświadczenia wiem, że nieraz nie powinno tak samo nazywać się zmiennych, jak masz je przekazane przez tablicę GET, czyli sprobuj zmienic nazwe zmiennej, np. na: Kod $IdAnkieterGl = $_GET['IdAnkieterGlowny]; oczywiście zmiany dokonaj w całym kodzie... Ten post edytował nitek 15.03.2009, 22:14:35 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak, widzę już przecinek, ale to niestety nie to.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
wszystko wygląda ok.. daj jeszcze przed
Kod mysql_query($query) or die("Błąd 1 - listaankiet"); Kod echo $sql; i wklej to, co się wyświetli..
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mniej więcej tak to wygląda.
INSERT INTO listaankiet (DataWypelnienia, AnkieterWypelniajacy, IdAnkieterGl, Host, Login, DataWprowadzeniaAnkiety) VALUES ( '2001-01-01', 'AnkieterNr1', '','Nazwa_komputera','MojLogin',SYSDATE()) No właśnie coś pusto tam gdzie powinna być wartość dAnkieterGl(zmieniłem jak radziłeś nazwę). |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
ostatni pomysł - zmień po prostu zapytanie na takie:
Kod $query = "INSERT INTO listaankiet (DataWypelnienia, AnkieterWypelniajacy, IdAnkieterGlowny, Host, Login, DataWprowadzeniaAnkiety)
VALUES ('".$_POST['DataWypelnienia']."','".$_POST['AnkieterWypelniajacy']."',".$_GET['IdAnkieterGlowny'].",'$hostname','".$_SESSION['user_login']."',SYSDATE())"; |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Niestety też pusto:(
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
kolejna rzecz, którą zauważyłem:
Kod <form action="NowaAnkieta.php?dopisz=tak" method="post"> czyli po wciśnięciu submita przerzucasz się na stronę, gdzie nie masz zmiennej IdAnkieterGlowny w linku - proste.. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) zapewne, jesli dla testu dasz Kod <form action="NowaAnkieta.php?dopisz=tak&IdAnkieterGlowny=100" method="post"> to do bazy wstawi Ci liczbę 100.. jeśli chodzi o mnie, to na dzisiaj już za chwilę znikam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował nitek 15.03.2009, 22:54:54 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
OK, pokombinuje jeszcze, dzięki bardzo za poświęcony czas.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 21:05 |