![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 0 Dołączył: 23.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Przeglądałem forum i nie znalazłem odpowiedzi na mój problem więc zadam tutaj moje pytanie. Wprowadzam do bazy dane z selecta multiple: [php:1:58597ab14a]<?php echo "<select name="dzial[]" size=10 multiple> <option value=1> Sport </option> <option value=2> Turystyka </option> <option value=3> Medycyna </option> </select>"; ?>[/php:1:58597ab14a] Do bazy zapisuje za pomocą: [php:1:58597ab14a]<?php $sql="update news set temat='$temat', tresc='$tresc', dzial="". implode(", ", $dzial) ."" where id='$artykul'"; ?>[/php:1:58597ab14a] W bazie wpis z tablicy ma postac: 1, 2, 5, 8 - w zaleznosci co sie zaznaczy oczywiście Problem pojawia się gdy chcę wyświelić w odpowiednim dziale newsa na podstawie tablicy dzial np. 1 - sport 2 - turystyka 3 - medycyna Gdy zaznacze w select te trzy działy to news powinien wyświetlić się w tych działach. Zrobiłem takie zapytanie aby pobrać dane do pierwszego działu ale nie działa: [php:1:58597ab14a]<?php $wynik = mysql_query ("SELECT * FROM news where implode(', ', $dzial)='1'"); ?>[/php:1:58597ab14a] natomiast to działa: [php:1:58597ab14a]<?php $wynik = mysql_query ("SELECT * FROM news where dzial='1'"; ?>[/php:1:58597ab14a] ale tylko wtedy gdy w bazie jest dodany jeden dział, przy dwóch i więcej już niestety skrypt się wywala. Proszę o pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%) ![]() ![]() |
Cytat dane z formularza musisz odebrac, jeli wysylasz POST to $_POST[]
sprubuj normalnie sprawdzic czy select jest ON czy nie [php:1:93c4bd9057]<?php if ($_POST[sel1] == ON) { jest zaznaczony } ?>[/php:1:93c4bd9057] [xml:1:93c4bd9057]<input type="hidden" name="sell" value="ON"> [/xml:1:93c4bd9057] [php:1:93c4bd9057]<?php if (isset($_POST['sell'] == "ON")) { echo "OK"; } else { echo "NIE"; } ?>[/php:1:93c4bd9057] EDIT: A co do problemu, to tkwi on w tym, że najpierw łączysz tablicę implode'm, a potem porównujesz uzyskany ciąg z jednym z możliwych (jeżeli tablica została połączona separatorem, to warunek nigdy nie będzie spełniony). Rozwiązaniem jest "przelecenie" całej tablicy przez jakąś pętlę, np.: [php:1:93c4bd9057]<?php foreach ($liczba as $zaw) { echo "Pozycja ".$zaw."<br />"; } ?>[/php:1:93c4bd9057] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 13:56 |