Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]tablica + pętla, Pobranie danych z petli i stworzenie zapytania do bazy
plej
post
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Na dole mam taki kod ( testowy więc nie jest atrakcyjny (IMG:style_emoticons/default/biggrin.gif) )

Gdy wybiore kilka opcji pokaże mi się przykład np. :
"and ( zmienna = 7 or zmienna = 2 or zmienna = 3 or zmienna = 4 or zmienna = 5 or zmienna = 7 ) "

Niestety 2 razy mam " zmienna = 7;

I niestety nie wiem jak to zrobić żeby pozbyć się duplikatu :/

Szukałem na google ale zawiele nie znalazłem.

Ktoś pomoże?


  1. <?php
  2.  
  3. $wyp = $_POST['test'];
  4. if(!$wyp == 0){
  5. $kat = "";
  6. $k= "and ( ";
  7. foreach($wyp as $index => $val){
  8. if(isset($wyp)){
  9. $we = "zmienna = ".$val[0];
  10. $kat .= " or zmienna = ".$val;
  11. }
  12. }
  13. $kk = " )";
  14. echo $k.$we.$kat.$kk;
  15. }// if wyp
  16.  
  17.  
  18. ?>
  19. <!DOCTYPE html>
  20. <html>
  21. <head>
  22. <meta charset="utf-8"/>
  23. <title>Demos</title>
  24. <link rel="stylesheet" href="css/bootstrap.css" />
  25. <link rel="stylesheet" href="css/multiple-select.css" />
  26. </head>
  27. <body>
  28. <div class="container">
  29. <div class="form-group">
  30. <label>Email address</label>
  31. <input type="email" class="form-control" placeholder="Enter email">
  32. </div>
  33. <form action="test.php" method="post">
  34. <div class="form-group">
  35. <label>Month</label>
  36. <select id="ms" name="test[]" multiple="multiple">
  37. <option value="1">January</option>
  38. <option value="2">February</option>
  39. <option value="3">March</option>
  40. <option value="4">April</option>
  41. <option value="5">May</option>
  42. <option value="6">June</option>
  43. <option value="7">July</option>
  44. <option value="8">August</option>
  45. <option value="9">September</option>
  46. <option value="10">October</option>
  47. <option value="11">November</option>
  48. <option value="12">December</option>
  49. </select>
  50. </div>
  51. <button type="submit" class="btn btn-info btn-block">Dalej </button>
  52. </form>
  53. </div>
  54.  
  55. <script src="js/jquery-3.2.1.js"></script>
  56. <script src="js/multiple-select.js"></script>
  57. <script>
  58. $(function() {
  59. $('#ms').change(function() {
  60. console.log($(this).val());
  61. }).multipleSelect({
  62. width: '100%'
  63. });
  64. });
  65. </script>
  66. </body>
  67. </html>


Ten post edytował plej 12.10.2017, 09:28:40
Go to the top of the page
+Quote Post
kufel16
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 3
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


  1. zmienna = 7 or zmienna = 2 or zmienna = 3 or zmienna = 4 or zmienna = 5 or zmienna = 7


Tutaj nie porównujesz tylko ustawiasz zmienną (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
plej
post
Post #3





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


to ma być zapytanie do bazy danych nie do instrukcji warunkowej (IMG:style_emoticons/default/biggrin.gif)


np.
select * from dane where imie = 1 and nazwisko=2 and ( rok=10 or rok=20 or rok=30) itp.

Użytkownik może wybrać pare opcji z danej listy i muszę do tego utworzyć zapytanie.

Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale sieczka....

Co do problemu to poprostu:

  1. $twojeZapytanie = 'cos tam bla bla';
  2.  
  3. //teraz dodajemy opcje
  4. if (!empty($_POST['test'])) {
  5. $twojeZapytanie .= ' AND zmienna in ('.implode(',', $_POST['test']).')';
  6. }
  7.  
  8. echo $twojeZapytanie;
Go to the top of the page
+Quote Post
kufel16
post
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 3
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


Cytat(plej @ 12.10.2017, 10:36:14 ) *
to ma być zapytanie do bazy danych nie do instrukcji warunkowej (IMG:style_emoticons/default/biggrin.gif)


np.
select * from dane where imie = 1 and nazwisko=2 and ( rok=10 or rok=20 or rok=30) itp.

Użytkownik może wybrać pare opcji z danej listy i muszę do tego utworzyć zapytanie.


Aj, sorry. Niedoczytałem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
plej
post
Post #6





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Dzięki Nospor ja się męczyłem w pętli a tu wystarczy jedna linijka he.

Nic nie szkodzi kufel16 (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Dodatkowo to zabezpiecz. Tutaj masz przykład jak to zrobić https://prophp.pl/advice/show/13/w_jaki_spo...larza_do_php%3F
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 05:55