• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP i SQL - zapytanie Czy da się wyświetlić użytkownika tylko wtedy gdy ma aktywne dni premium w formacie "datetime"?

Object Storage Arubacloud
0 głosów
231 wizyt
pytanie zadane 24 lutego 2019 w PHP przez Hasira Bywalec (2,100 p.)

Witam, czy da się wymusić w zapytaniu poniżej, by uwzględniało najważniejsze "Pokaż tylko użytkowników, którzy mają aktywne konto premium" 

if ($polaczenie -> query("INSERT INTO uzytkownicy VALUES (NULL, '$nick', '$haslo_hash', '$email', now() + INTERVAL 90 DAY)"))
$query = mysql_query("SELECT * FROM uzytkownicy WHERE username LIKE '%$searchq%' AND dnipremium = ?");

W praktyce z tym premium wygląda to tak:

a efekt wyświetlania użytkowników tutaj:

dodam, że konto "czeschasira" nie ma aktywnego konta "premium"

Jeśli ktoś wie jak to rozwiązać to proszę o pomoc, bo google nie zbyt mi pomaga w tym temacie

2 odpowiedzi

+1 głos
odpowiedź 24 lutego 2019 przez BT101 Stary wyjadacz (12,540 p.)
wybrane 24 lutego 2019 przez Hasira
 
Najlepsza

Oczywiście, że się da. W jaki sposób to zależy od struktury twojej tabeli.

Jeżeli premium to bool to wystarczy taki SQL:

SELECT * FROM users WHERE premium = 1

Jeżeli premium to date to taki SQL:

SELECT * FROM users WHERE date_c < $current_date

Pamiętaj, że w SQL, DATETIME i DATE to dwa różne typy, a powinniśmy porównywać te same typy.

  • DATE - format: YYYY-MM-DD
  • DATETIME - format: YYYY-MM-DD HH:MI:SS
  • TIMESTAMP - format: YYYY-MM-DD HH:MI:SS
  • YEAR - format: YYYY lub YY

Jeśli chodzi o Twój kod - mysql_query to bardzo stara i zdeprecjonowana metoda, obecnie używana tylko w technikum inf przez nauczycieli :D. Dodatkowo w twoim kodzie nie ma żadnych escape'ów więc jest on podatny na wstrzykiwanie sql. Jest trochę nowsze mysqli_query ale polecałbym zapoznanie się z PDO.

komentarz 24 lutego 2019 przez Hasira Bywalec (2,100 p.)
dziękuje, udało mi się, nie koniecznie tak jak powyżej, ale działa, a co do wstrzykiwania sql, kod podałem roboczy, i tylko jedną linijkę, w przyszłości wszystko będzie zabezpieczone, bo to ogromny projekt webowy ;)
komentarz 24 lutego 2019 przez BT101 Stary wyjadacz (12,540 p.)
Możesz zaakceptować odpowiedź jeżeli Ci pomogła.
komentarz 24 lutego 2019 przez Hasira Bywalec (2,100 p.)
wystarczyło dać AND dnipremium > now() i wszystko gotowe, no proszę taka pierdoła a ile czasu może napsuć :D
0 głosów
odpowiedź 24 lutego 2019 przez Assasz Nałogowiec (30,460 p.)

dnipremium to int? Jeśli tak, to czemu nie po prostu:

dnipremium > 0

Poza tym te zapytania są podatne na SQL injection... No i nie korzystamy z mysql_query, rzuć okiem na PDO.

komentarz 24 lutego 2019 przez Hasira Bywalec (2,100 p.)
właśnie nie jest to int a data w formacie: "2019-08-21 11:51:42"
komentarz 24 lutego 2019 przez Assasz Nałogowiec (30,460 p.)
W takim razie masz źle nazwaną kolumnę ;) A odpowiedź widzę już dostałeś.

Podobne pytania

0 głosów
0 odpowiedzi 179 wizyt
0 głosów
1 odpowiedź 236 wizyt
+1 głos
2 odpowiedzi 304 wizyt

92,579 zapytań

141,431 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...