![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
Witam
Mam problem ze zmianą warunku w wyszukiwarce. Nie wiem jak zmienić ten kod żeby do warunku WHERE dodać warunek IN. Mam problem z checkboxami o tej samej nazwie. Pomimo zaznaczenia kilku wyszukuje mi tylko po ostatnim. Chodzi o zmienne id_prawo_jazdy. Tabele połączone są ze sobą zmienną ID gdzie id-głównej=id-pomocniczej (dla id-głównego może być wiele id pomocniczych w tym przypadku id_prawo_jazdy). Wszystko w wyszukiwarce działa OK oprócz niestety tych checkbox o nazwie id_prawo_jazdy
zmieniłem tu na IN to teraz mam błąd if (!empty($formData['id_prawo_jazdy'])) { $IN[] = 'id_prawo_jazdy = :id_prawo_jazdy'; $bind[':id_prawo_jazdy'] = $formData['id_prawo_jazdy']; } |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie.
Spróbuj:
Ten post edytował trueblue 6.05.2014, 18:46:03 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
coś nie tak
$zap=str_repeat('?,',count($ids)-1. '?'; Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
to mam teraz błąd
Warning: str_repeat() [function.str-repeat]: Second argument has to be greater than or equal to 0 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował trueblue 6.05.2014, 19:03:48 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
a jak klikne w checkbox + szukaj to dodatkowo mam
Warning: Invalid argument supplied for foreach() in oczywiscie rozumiem że to mam już usunąć
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ten fragment do usunięcia.
Daj print_r($_POST['id_prawo_jazdy']); przed foreach i pokaż. -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
mam taki błąd
Warning: str_repeat() [function.str-repeat]: Second argument has to be greater than or equal to 0 in jak zaznacze checkboxy i wezme szukaj to i tak zaznacza mi jeden (ostatni) i pokazuje się błąd Warning: Invalid argument supplied for foreach() in on line 320 Błąd połączenia z bazą!: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters print wyświetla mi nr checkboxa ale tylko jednego pomimo zaznaczenia kilku- czyli ostatni acha i w ogóle nie działa wyszukiwarka pomimo wybierania innych parametrów nie mówie o id_prawo_jazdy Ten post edytował peklo 6.05.2014, 19:15:44 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie modyfikujesz czasem wcześniej w kodzie zmiennej $_POST['id_prawo_jazdy'] ?
Pokaż wynik print_r, albo lepiej: var_dump($_POST['id_prawo_jazdy']); -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
var_dump po zaznaczeniu przykładowego checkbox pokazuje
string(1) "3" Nospor podpowiedział mi że mam "poprawic na IN i wpisanie wartosci " Jak chce porównać kilka wartosci to mam używać IN Ale nie wiem jak to zmienić i zaimplementować razem z WHERE z innymi zmiennymi. Chodzi pewnie o poprawę tego kodu + zapytanie if (!empty($formData['id_prawo_jazdy'])) { $where[] = 'id_prawo_jazdy = :id_prawo_jazdy'; $bind[':id_prawo_jazdy'] = $formData['id_prawo_jazdy']; } tj Trueblue nie da się już nic z tym zrobić? ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Kod, który Ci podałem wyżej (z poprawkami) powinien działać.
Obecnie u Ciebie jest problem z tym, że zmienna $_POST['id_prawo_jazdy'] jest stringiem, a nie tablicą. Ale jak bardzo chcesz pozostawić poprzedni kod, to możesz zrobić tak:
Co nie zmienia faktu, że $_POST['id_prawo_jazdy'] musi być tablicą. Dodatkowo to przeczy idei bindowania wartości. -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
no właśnie nie wiem jak to wszystko połączyć + jeszcze bindowanie
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jak to nie wiesz?
Podałem Ci jeden przykład i przed chwilą drugi. Obecnie Twoim problemem jest to, że $_POST['id_prawo_jazdy'] nie jest tablicą. Ponawiam pytanie: czy wcześniej w kodzie nie modyfikujesz w jakiś sposób tej zmiennej albo całej tablicy $_POST? -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
jak mam stary kod i jak wezme var_dump($_POST['id_prawo_jazdy']); i zaznaczę kilka checkbox to mam np: array(3) { [0]=> string(1) "1" [1]=> string(1) "5" [2]=> string(2) "10" } Ten post edytował peklo 6.05.2014, 19:56:01 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli to co podałeś to Twój "stary" kod, to musisz znaleźć różnicę, dlaczego ten zwraca tablicę, a nowy string.
-------------------- |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 420 Pomógł: 0 Dołączył: 27.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
to jest stary kod uproszczonyh oczywiście a zostało w nim zmienione to:
'id_prawo_jazdy' => $_POST['id_prawo_jazdy'], na to: 'id_prawo_jazdy' => implode(',',$_POST['id_prawo_jazdy']); |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
To ja bym chciał zobaczyć co masz w $_POST['id_prawo_jazdy'] (var_dump), ale przed implodowaniem.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:39 |