![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Zrobiłam ankietę z polem jednokrotnego wyboru (radio) i wszystko zapisuje sie do bazy mysql. Zmieniłam na pole wielokrotnego wyboru (checkbox) i dodaje do bazy z odpowiedzi A, B, C, tylko ostatnią wartość, zamiast wszystkich. Chce zroić tak, aby na pytanie 1 można było wybrać odpowiedz A, B i C lub jedną z kombinacji $pytanie_1=$HTTP_POST_VARS['pytanie_1']; $zapytanie="INSERT LOW_PRIORITY INTO nazwa VALUES('$nazwa', '$pytanie_1', '$pytanie_2')"; Co mam poprawić? Tak samo dzieje się przy wyciąganiu inforamacji z bazy pomimo że rębcznie dopisałem drugą wartość tylko jedna sie pokazuje Dzięki za pomoc
Powód edycji: dodałem tagi (cysiaczek)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Tutaj bardziej przyda się wgląd w kod formularza a nie w zapytanie do bazy. Pokaż kod formularza oraz kod gdzie tworzysz zapytanie.
-------------------- 404
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kod HTML
Kod dodawania do bazy:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze w odpowiedziach musisz wykorzystać tablice :
po stronie PHP pod zmienną $_POST['pytanie_1'] ( szybkie wcięcie .. zamiast $_HTTP_POST_VARS korzystaj z $_POST , $_GET, $_COOKIES ) otrzymasz tablicę. Jeżeli chcesz mieć w bazie w jednym polu wszystkie odpowiedzi np po przecinku .. czyli A,C ... to wystarczy jak wykorzystasz implode()" title="Zobacz w manualu PHP" target="_manual. Jeżeli chcesz mieć dla każdej odpowiedzi osobny rekord w bazie musisz zapytanie INSERT wykonać w pętli. -------------------- 404
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Przenoszę na Przedszkole
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Ja jestem osobą początkująca i dopiero zaczynam przygodę z mySQL i php Można prosić o bardziej wyjaśnienie tego polecenia. Co mam zmienić?? Dziękuję |
|
|
![]()
Post
#7
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Jak masz taki fragment kodu, to wartości zaznaczone są w PHP w tablicy. Po takiej operacji:
Otrzymamy tablice, z zaznaczonymi polami. Teraz korzystając np z foreach
Musisz wrzucić odpowiednie dane od bazy danych. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pytanie jaka typ powinna mieć tablica varchar czy jakiś inny?? Witam Dzięki hwao za podpowiedz:) Po wprowadzeniu tych powyższych kodów w bazie mysql pojawia się wartość "Array". Czy tak powinno być czy pownino pojawić się odpowiedzi ABC?? <?php foreach( $_POST['pytanie_1'] As $k => $v ) { echo 'Zaznaczyle: '.$v; } ?> Chcąc wyciągnąć informacje z bazy pojawia się błąd. Czy można prosić o wyjaśnienie co ma być pod $k i $v dzięki ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Zamiast zapisywać do bazy sprawdzić co wygeneruje kod który podał hwao.
Jeżeli nie zmieniłaś zapytania INSERT to do bazy zostanie zapisane właśnie ciąg Array. Jak już wcześniej pisałem od Ciebie zależy, czy chcesz dla odpowiedz A,C miec jeden rekord w bazie z ciągiem znaków 'A,C' czy też dwa rekordy jeden z wartością A a drugi z wartością C. -------------------- 404
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dane wprowadzone do tabeli mają być później jescze zliczane
czyli na pytanie 1 padło odpowiedzi a... b.... c.... i dla mnie jest to obojętne (czy to będzie zapisywało do jednego czy dwóch) bo i tak później musi mi to dodatkowo zliczać. Próbowałem wykonać podane podane prze hwao pliki ale co mam podstawić za $k i $v. Spodziewałem się ze wiekszych problemów z przejściem z jednego na wiele odpowiedzi nie będzie |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Dane wprowadzone do tabeli mają być później jescze zliczane czyli na pytanie 1 padło odpowiedzi a... b.... c.... i dla mnie jest to obojętne (czy to będzie zapisywało do jednego czy dwóch) bo i tak później musi mi to dodatkowo zliczać. No to chyba jednak sposób zapisania będzie miał znaczenie na szybkość obliczeń ... zakładam, że chcesz policzyć ile razy na pytanie numer 2 ktoś zaznaczył odpowiedź A lub B lub C ... Cytat Próbowałem wykonać podane podane prze hwao pliki ale co mam podstawić za $k i $v. Spodziewałem się ze wiekszych problemów z przejściem z jednego na wiele odpowiedzi nie będzie Nic nie musisz podstawiać. Po prostu zamiast kodu gdzie masz zapytanie INSERT do bazy wpisz kod podany przez hwao -------------------- 404
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki kod dodawania do bazy
<? // dodaj.php include('wspolne_gmina.php'); lacz_bd("wszech"); $nazwa=$HTTP_POST_VARS['nazwa']; $pytanie_1=$HTTP_POST_VARS['pytanie_1']; $pytanie_2=$HTTP_POST_VARS['pytanie_2']; $zapytanie="INSERT LOW_PRIORITY INTO gmina VALUES('$nazwa', '$gmina', '$pytanie_1', '$pytanie_2')"; @mysql_query($zapytanie); mysql_close( ); ?> i w którym miejscu mam dodać <?php foreach( $_POST['pytanie_1'] As $k => $v ) { echo 'Zaznaczyle: '.$v; } ?> |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisałem powyżej: zamiast ... ten kod co masz możesz tymczasowo wykomentować, sprawdź tylko jak są przechowywane dane w tablicy i już powinnaś wiedzieć jak je dodawać do bazy.
-------------------- 404
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
pojawił sie komunikat w przeglądarce
Zaznaczyle: AZaznaczyle: B ale nic do bazy nic nie dodało po wprowaszeniu polecenia: <?php print_r( $_POST['pytanie_1'] ) ?> pojawiło się Array ( [0] => A [1] => B [2] => C ) Zaznaczyle: AZaznaczyle: BZaznaczyle: C ale w bazie dalej przy pytaniu_1 jest wartość Array. Czy może mieć znaczenie typ kolumny Pytanie_1?? Mam ustawione na varchar(5). Ten post edytował kobieta 14.09.2008, 16:23:38 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
pojawił sie komunikat w przeglądarce Zaznaczyle: AZaznaczyle: B ale nic do bazy nic nie dodało po wprowaszeniu polecenia: <?php print_r( $_POST['pytanie_1'] ) ?> pojawiło się Array ( [0] => A [1] => B [2] => C ) Zaznaczyle: AZaznaczyle: BZaznaczyle: C ale w bazie dalej przy pytaniu_1 jest wartość Array. Czy może mieć znaczenie typ kolumny Pytanie_1?? Mam ustawione na varchar(5). Czyli z powyższego kodu wynika że ... odpowiedzi są w tablicy .... gdzie klucze ( to co jest w nawiasach [] to wartości zaczynające się od 0 ) a wartości to zaznaczone odpowiedzi. Znowu zadam pytanie .. jak chcesz dodawać odpowiedzi .. czy razem w jednym wierszu ... czy w większej ilości wierszy ... Jeżeli w jednym wierszu to zapytanie będzie wyglądało tak :
A jeżeli w wielu wierszach to :
kod pisany z palca bez sprawdzania .. ma dać Ci tylko pomysł, a nie gotowe rozwiązanie. Ten post edytował Cienki1980 14.09.2008, 20:55:28 -------------------- 404
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 26.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
W jednym wierszu
Ten post edytował kobieta 14.09.2008, 20:53:24 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 18:41 |