Skocz do zawartości

Multi Search in Database using Checkbox


 Udostępnij

Rekomendowane odpowiedzi

Witam mam napisany kod php + elementy z checkbox

Cytuj

  <?php
         
            $kategoria = isset($_GET['kategoria'])? $_GET['kategoria'] : 'turniej';
            
$dbc = mysqli_connect('localhost','root','','turniej') or die("Brak połączenia z bazą");
            mysqli_query($dbc, "SET CHARSET utf8");
            $results_per_page = 10;
            $query = "SELECT * FROM csgo WHERE Kategoria = '$kategoria' AND  Kategoria = '$kategoria'  LIMIT 15" ;
            $result = mysqli_query($dbc,$query) or die("Brak możliwości wyświetlenia danych");
            $number_of_results = mysqli_num_rows($result);
                
?>

Moje pytanie brzmi tak: jak zrobić że jak kliknę dwa zaznaczenia to wyszuka mi w bazie danych takie i takie informacje. Aktualnie udało mi się zrobić tylko z jednym a nie potrafię rozbudować by obydwa wyszukiwało. 

+ w www wygląda tak 

Cytuj

gracze.php?kategoria=Myszka&kategoria=Klawiatura#filtrs

Z góry dziękuje za pomoc

Odnośnik do komentarza
Udostępnij na innych stronach

  • Ekspert

Raczej powinno być coś w stylu:

?kategoria=rower,samochod

Bo kluczy tablicy - jakiejkolwiek - nie da się powtórzyć...

W $_GET['kategoria'] będziesz mieć rower,samochod i teraz wystarczy użyć funkcji explode(), i masz już odseparowane kategorie, po których możesz wyszukać rekordy w bazie.

Edytowane przez BlackIce
Odnośnik do komentarza
Udostępnij na innych stronach

  • Administrator
<form action="index.php" method="GET">
    <input type="checkbox" name="cat[]" value="value 1">
    <input type="checkbox" name="cat[]" value="value 2">
    <input type="checkbox" name="cat[]" value="value 3">
    <input type="checkbox" name="cat[]" value="value 4">
    <input type="checkbox" name="cat[]" value="value 5">
    <input type="submit" />
</form>
<?php
if(!empty($_GET)) {
    $cat = $_GET['cat'];
    var_dump($cat);
}
?>

Wynik zmiennej $cat jest tablicą:

array(3) { [0]=> string(7) "value 2" [1]=> string(7) "value 4" [2]=> string(7) "value 5" }

Więc teraz musisz sobie przygotować zmienną, w której przygotujesz dane tak, aby pasowały do wykonania w bazie

Odnośnik do komentarza
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
  • Podobna zawartość

    • Witam, ponownie :D. Tym razem mam problem z checkbox. Wszystko działało, w pewnym momencie przestało działać checkbox. Nie mam pojęcia czy to wina kodu w którym coś źle zmieniłem czy może xamppa i local hosta. 
      Do edycji tego znacznika mam taki kod:
      <input type="checkbox" class="product1" name="product-1" value="product"> <label for="product1">Produkt 1</label><br> input[type=checkbox] + label { display: block; margin: 0.2em; cursor: pointer; padding: 0.2em; } input[type=checkbox] { display: none; } input[type=checkbox] + label:before { content: "\2714"; border: 0.1em solid #000; border-radius: 0.2em; display: inline-block; width: 1em; height: 1em; padding-left: 0.2em; padding-bottom: 0.3em; margin-right: 0.2em; vertical-align: bottom; color: transparent; transition: .2s; } input[type=checkbox] + label:active:before { transform: scale(0); } input[type=checkbox]:checked + label:before { background-color: MediumSeaGreen; border-color: MediumSeaGreen; color: #fff; } input[type=checkbox]:disabled + label:before { transform: scale(1); border-color: #aaa; } input[type=checkbox]:checked:disabled + label:before { transform: scale(1); background-color: #bfb; border-color: #bfb; } Pytanie brzmi czemu to nie działa  oraz czy jest jakaś łatwiejsza wersja zrobienia własnego chcecboxa pod strone :?
    • Witam,
      Posiadam taki formularz kontaktowy:
      <?php $twojemail = "freaky23@wp.pl"; //na jaki adres ma zostać wysłana treść z formularza $blad=0; if (isset($_POST['submit'])) { // filtrowanie treści wprowadzonych przez użytkownika $name = htmlspecialchars(stripslashes(strip_tags(trim($_POST["name"]))), ENT_QUOTES); $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES); $message = htmlspecialchars(stripslashes(strip_tags(trim($_POST["message"]))), ENT_QUOTES); $subject = htmlspecialchars(stripslashes(strip_tags(trim($_POST["subject"]))), ENT_QUOTES); $temat = 'Kontakt - '.$subject.'' . "\r\n"; // temat wiadomości // sprawdzamy czy wszystkie pola zostały wypełnione if (!$name) { $blad++; echo 'Prosimy wpisać swój Nick.'; } if (!$email) { $blad++; echo 'Prosimy wpisać swój adres E-mail.'; } if (!$message) { $blad++; echo 'Prosimy wpisać treść wiadomości.'; } // jeżeli nie ma błędu, to wiadomość e-mail zostaje wysłana if ($blad == 0) { // niezbędne nagłówki do wyświetlania wiadomości HTML $naglowki = "MIME-Version: 1.0" . "\r\n"; $naglowki .= "Content-type:text/html;charset=utf-8" . "\r\n"; // opcjonalne nagłówki $naglowki .= 'From: <'.$email.'>' . "\r\n"; $naglowki .= 'Cc: <'.$twojemail.'>' . "\r\n"; // całkowita treść wiadomości $message = nl2br($message); $wiadomosc = <<< KONIEC <html> <strong>Nick:</strong> $name<br /> <strong>E-mail:</strong> $email<br /> <strong>Temat:</strong> $subject<br /> <strong>Wiadomość:</strong><br /> $message </html> KONIEC; // wysyłanie wiadomości e-mail $wynik = mail('<'.$twojemail.'>', $temat, $wiadomosc, $naglowki); // komunikat potwierdzający wysłanie wiadomości bądź nie if ($wynik) { echo 'Wiadomość została wysłana.'; } else { echo ' <div class="section-title"> <h2>blad</h2> </div>'; } } } ?> <div class="row"> <form method="post" name="contactform" action="kontakt.php"> <div class="col-sm-6"> <div class="form-group"> <font size="2">Nick<br /> <input type="text" name="name" id="name" class="form-control" size="35"> </div> </div> <div class="col-sm-6"> <div class="form-group"> E-mail<br /> <input type="text" name="email" id="email" class="form-control" size="35"> </div> </div> <div class="col-sm-6" > Temat<br /> <select id="subject" name="subject" class="form-group form-control"> <option>Ogólny</option> <option>Zapytanie</option> <option>Reklamacja</option> </select> </div> <div class="col-sm-12"> <div class="textarea-message form-group"> Treść wiadomości</font><br /> <textarea name="message" id="message" class="textarea-message form-control" rows="7" cols="27"></textarea> </div> </div> <div class="text-center"> <button type="submit" name="submit" value="Send message" class="button button-style button-style-dark button-style-icon fa fa-long-arrow-right text-center">Wyślij wiadomość</button> </div> </form> </div> Ogólnie wszystko działa z tym, że nie ma polskich znaków w "Temacie" w formularzu są, ale po wysłaniu wiadomości na poczcie pojawiają się ogonki.
      Druga sprawa chciałem dodać checkbox z regulaminem ktorego zaznaczenie jest wymagane. Co powinienem dodac aby formularz sprawdzal czy checkbox jest zaznaczony?
      <input type="checkbox" name="reg" value="reg" /> Akcpetuje regulamin Pozdrawiam i licze na pomoc
    • Nudzą Was brzydkie, domyślne inputy radio i checkbox? Picker przychodzi z pomocą!

      Picker działa na bardzo prostej zasadzie, ukrywa domyślne inputy i zastępuje je "swoimi", którym możemy nadać dowolne atrybuty.


      Jak dodajemy skrypt?

      Ładujemy bibliotekę jQUERY oraz skrypt pobrany z Pobierz z GitHub
      Dodajemy następujący kod:
      $("input[type=radio], input[type=checkbox]").picker();
      Dla wszystkich inputów typu radio i checkbox ma zadziałać Picker!

      Przykładowy kod formularza:
       

      Demo skryptu i przykładowe konfiguracje dostępne są na Picker


      Dla ToolsWeb.pl i CmsSzablony.pl
    • Jak nadać własne style elementom input radio i checkbox? Wbrew pozorom nie jest to trudne zadanie. Jednak wiele osób nie wie jak to zrobić, bowiem nie da się nadać stylów tym elementom w standardowy sposób. Taki sposób nie zadziała:
      input[type=checkbox] { background: red; border: 1px solid red; } Jak więc osiągnąć zamierzony efekt?
      Jest to bardzo proste. Zazwyczaj elementowi input towarzyszy label i to on przejmie rolę tego pola.
      <input type="checkbox" name="custom1" id="custom1"> <label for="custom1"> Label</label> Dlatego więc ukryjemy nasz input właściwością display: none i najzwyczajniej ostylujemy element label. Nie możemy jednak zamienić całego label, ponieważ wewnątrz może znajdować się tekst opisujący nasze pole. Użyjemy do tego celu pseudoklasy :befor, po to żeby pole checkbox znalazło się przed naszym opisem.
      label:befor powinien mieć pozycję absolutną, aby móc dokładnie ustalić jego położenie, a także być elementem blokowym (display: block). Reszta stylów (wysokość, szerokość, kolory) zależą od naszego uznania. Dodatkowo w poniższym przykładzie została dodana właściwość transition, dzięki temu osiągniemy efekt płynności podczas zaznaczania naszych pól.
       
      W celu określenia co ma się stać gdy element będzie zaznaczony lub zablokowany należy użyć pseudoklas, kolejno :checked i :disabled
       
      W celu uzyskania zamierzonego efektu należy zmienić, według uznania, właściwości background-color, border-color, width, height. Zachęcam do eksperymentowania.
       
      Demo: http://jsfiddle.net/writen/9L9bamcs
      input[type=checkbox], input[type=radio] { display: none; /* ukrywamy nasz input */ } input[type=checkbox] + label, input[type=radio] + label { position: relative; padding-left: 23px; /* margines wewnętrzny - trzeba zrobić trochę miejsca dla naszego pola */ } input[type=checkbox] + label:before, input[type=radio] + label:before { position: absolute; content: ""; display: block; /* koniecznie element blokowy, aby móc nadać odpowiednie wymiary */ width: 10px; height: 10px; top: 0; /* ustalamy pozycje */ left: 0; cursor: pointer; /* dodamy jeszcze odpowiedni kursor */ transition: all .4s ease; -webkit-transition: all .4s ease; background-color: #cccccc; border: 3px solid #cccccc; } /* checkbox */ input[type=checkbox] + label:before { border-radius: 2px; } /* radio */ input[type=radio] + label:before { border-radius: 50%; /* aby input radio był okrągły */ } /* gdy zaznaczony */ input[type=checkbox]:checked + label:before, input[type=radio]:checked + label:before { background-color: #ffffff; } /* gdy zablokowany */ input[type=checkbox]:disabled + label:before, input[type=radio]:disabled + label:before { background-color: #b6b6b6; border-color: #b6b6b6; } /* gdy zaznaczony i zablokowany */ input[type=checkbox]:checked:disabled + label:before, input[type=radio]:checked:disabled + label:before { background-color: #cccccc; border-color: #b6b6b6; }
  • Najnowsze tematy

  • Ostatnio rozwiązane

    • Grafikiem nie jestem ale może się spodoba 🙂 Dodaję też plik PSD (edycja w programie Photoshop) jakby ktoś chciał sobie zmienić napis: Ukryta zawartość Zareaguj na post lub odpowiedz w temacie aby zobaczyć ukrytą zawartość.
    • Witaj Zenon. Program jest bardzo stary, wydany po raz pierwszy w 2004 roku. Rozumiem że posiadasz jeszcze wersję 1.0 bądź 1.1?  Z tego co widzę najnowszą i ostatnią wersją która została wydana, jest wersja 2.2.2 z 2008 roku. Niestety nie wspiera ona systemu Windows 7 ani tym bardziej Windows 10. Jeżeli chodzi o błąd to mówi on że nie próba ustawienia/zapisu danych dla pola ScreenFontName się nie powiodła.  Kod programu jest stary i nie jest kompatybilny z najnowszym systemem. Najlepszym wyjściem z tej sytuacji będzie przeniesienie się na nowszy program. Jest kilka tego typu programów, jednak musisz wziąć pod uwagę że nie wszystkie są w pełni darmowe a wiele z nich posiada ograniczenia. Sprawdź proszę poniższą listę programów do tworzenia drzewa genealogicznego: Drzewo Genealogiczne II (ograniczenia, wersja testowa)  Family Tree Builder (trzeba założyć konto online, ale jest darmowy i bez ograniczeń) Brother's Keeper (wersja testowa) Drzewo przodków (wersja demo)
×