Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Pokazanie rekordów wg. abonamentu
Forum PHP.pl > Forum > PHP
maniek74
Witam

W tabeli klienci mam 2 pola odpowiedzialne za abonament:
`customer_subscription_type` = rodzaj abonametu
1 - free
2 - standard
3 - VIP

oraz pole
customer_subscription_from = data do kiedy jest abonament 2 i 3

abonament free jest zawsze bez względu na datę.

Problem w tym że nie wiem jak zrobić zapytanie do bazy żeby
Pokazał abonamenty vip z ważnym abonamentem jak data jest mniejsza niż dzisiejsza pokazał jako free
Pokazał abonamenty standard z ważnym abonamentem jak data jest mniejsza niż dzisiejsza pokazał jako free
Pokazał abonamenty free

Oczywiście w teakiej kolejności jak napisalem

Przy tym zapytaniu wycina mi klientów z nieważnym abonamentem zamiast przenieść do free.
  1. <?php
  2. "SELECT * FROM `".DB_PREFIX."customer` WHERE ".implode(' AND ', $querySearch)." AND `customer_type`='2' AND `customer_status`='1' AND
  3. (`customer_subscription_type`='3' AND `customer_subscription_from` >= '".date("Y-m-d")."' OR
  4. `customer_subscription_type`='2' AND `customer_subscription_from` >= '".date("Y-m-d")."' OR `customer_subscription_type`='1')
  5. ORDER BY `customer_subscription_type` DESC;"
  6. ?>


Można prosić o pomysł jak to rozwiązać?
Pozdrawiam
trueblue
Proponuje Ci użyć konstrukcji warunkowej CASE WHEN:
https://dev.mysql.com/doc/refman/5.0/en/con...l#operator_case
(w wyborze kolumn, a nie w warunku WHERE).
ber32
albo sprawdzać w php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.