![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam panowie, mam kod , który ma za zadanie po array_key_exsist polecieć foreachem wszystkie zaznaczone checkboxy i jeżeli w bazie mam 1 to robi 0 , jeżeli mam 0 to robi 1.
Niestety powyższy kod jakoś dziwnie działa. zaptaszkuje zapisze to 1 zapisuje drugi nie zapisuje. Albo jak mam np 2 checkboxy zaznaczone i 1 odznacze to mi odznacza wszystkie checkboxy. Ten post edytował casperii 17.09.2015, 09:05:58 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Czemu do sprawdzania pobierasz dane z tabelka a updatujesz w files?
-------------------- "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
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Źle napisałem :-) oczywiście tabelka files
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Pokaz jak wyglada tabelka files oraz co zwraca
print_r($_POST); w sytuacji, gdy rzekomo źle działa. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 875 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
W linii 15: dajesz do stringa funkcję die() która powinna być dla mysql_query()
W ogóle zbędna rzecz, bo lepiej sprawdzić przed wrzuceniem do UPDATE/SELECT czy nasze wartości są prawidłowe. czyli if (is_integer($value)) mysql_query ($update); Potem: $sprawdz = mysql_query("SELECT * FROM `files` WHERE `plik` = '".$value."'") or die(mysql_error()); Jeżeli sprawdzasz czy wartość ma 1 lub 0, to po co wykonujesz dalej polecenie UPDATE? zrób if ($sprawdz = mysql_query("SELECT * FROM `files` WHERE `plik` = '".$value."'")) { /* UPDATE */} else echo " Wartość nie zmieniła się. "; array_key_exist to sprawdzenie czy klucz w tablicy dla wartości o którą pytam istnieje, ale jeżeli już to powinnieneś pytać się o: if (array_key_exist('plik',$_POST)) ... lub if (array_key_exist($cos,$odbieram)) ale to bez sensu. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) ![]() ![]() |
Skróciłem ci ten kod z 1 Postu do identycznego z nudów ]:-).
Tylko troche zaciemniony;
if($result_upd){ print 'skonfigurowałem:'.$value.'<br>'; } ^ a to sie nigdy nie wykona u ciebie bo zmienna nie istnieje :-P -- Moze malo czytelny, ale zawsze mozna dodac { } ![]() Ten post edytował KsaR 17.09.2015, 10:10:39 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
@Tomplus mam kilka checkboxów wyciąganych z bazy.
To wyciągam zapytaniem z bazy i ptaszkuje jeżeli ma w bazie status onof = 1 To wszystko jest oplecione formem. Po kliknięciu buttona wykonuje się kolejny kod: Ok niech będzie tu kod użytkownika @KsaR
i po wykonaniu tego kodu są jaja. Bo updatuje mi się nawet ten plik , którego nie zaznaczyłem ![]() Czyli reasumując mam 3 pliki plikA , plikB , plikC, plikA i plikB mają w bazie onof=1 czyli są zaptaszkowane, teraz ptaszkuje sobie plikC i daje zapisz to owszem mi się zaptaszkuje ten plikC ale plikA i plikB odptaszkowuje mi się ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) ![]() ![]() |
casperii, moj kod robi to co twoj..
Obkomentuje go:
Aha, ten if ale w zapytaniu zastepuje te liniki:
Czyli troche inaczej jednak: powinno byc zamiast: IF(`onof`='0','1', '0') W zapytaniu, tak: IF(`onof`='1','0', '1') Wtedy moj kod zrobi dokladnie to co twoj, z tym że dodatkowo zadziala mu ten komunikat ze skonfigurowano, jak i komunikat bledu ![]() Ten post edytował KsaR 17.09.2015, 18:02:49 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
@KsaR i dOOpa ten twój kod coś nie działa.
Dalej jest tak, że odptaszkowuje mi pliki które je ręcznie nie odptaszkowałem w htmlu. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 875 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Ja może szukam błędu często po chłopsku, ale
zrób sobie echo/print na różnych stopniach dzialania skryptu. Sprawdź zawartość zmiennych i tablic np. echo "<pre>".print_r($_POST,1)."</pre>"; aby wyświetlić preformatowaną listę informacji z tablicy. Sprawdź co leci do bazy, jaką wartość masz przed, a jaką po. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
tabela files:
plik varchar (64) onof int(1) - domyślnie 0 @KsaR tak wygląda obecnie kod:
Nie potrafię znaleźć błędu. Dlaczego bierze pod uwagę te checkboxy które nie odznaczyłem i sam nadaje im update z 1 na 0. Czyli nadpisuje jak mu się podoba. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Dlaczego bierze pod uwagę te checkboxy które nie odznaczyłem Poniewaz formularzem wysylane są tylko zaznaczone checkboxy. To są podstawy HTML a sam bys to zobaczyl, gdybyś raczył posluchac porad, ktore ci dawalismy, a ktorze brzmialy:zajrzyl w koncu co idzie postem. Ale zignorowales to dwukrotnie i meczysz sie od tygodnia z totalną pierdułą. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
@nospor nie zrozumiałeś mnie.
Wiem, że tylko zaznaczone checkboxy idą POSTem. Chodzi mi o to, że jeżeli już jakiś checkbox jest już zaznaczony po wczytaniu strony zaznaczę inne checkboxy, to te wcześniejsze co były zaznaczone odptaszkowują się (czyli nadpisują w bazie onof=0). |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Bo tak dziala skrypt, ktory napisales.
Skoro napisales, ze w bazie zmieniasz zaznaczone checkboxy na przeciwne wartosci jakie mają aktualnie w bazie, to skrypt robi co mu każesz. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
@nospor racja, skrypt robi to co się jemu dyktuje, źle może na początku wyraziłem się o to co chcę osiągnąć.
obecnie skrypt wygląda tak:
Oczywiście powyższy kod jest dla mnie jak najbardziej zrozumiały i zapisuje mi 1 dla tych checkboxów które wybrałem. No ale nasuwa się pytanie w jaki sposób teraz odptaszkowywać je? Mam tworzyć kolejny foreach z empty i w nim update onof=0? Proszę o porady. Ten post edytował casperii 3.10.2015, 12:48:49 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.07.2025 - 07:02 |