[PHP]GROUP_CONCAT a warunek dla rekordu |
[PHP]GROUP_CONCAT a warunek dla rekordu |
19.02.2020, 12:06:06
Post
#1
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
Używam GROUP_CONCAT aby połączyć rekordy z dwóch tabel. Ustawiłem poniższy warunek. Jednak w sytuacji kiedy jest więcej niż 1 rekord to poniższe zapytanie nie działa. Proszę o pomoc jak rozwiązać problem.
$oneYearOn3 = date('Y-m-d'); if (($row["domain_ends"]<$oneYearOn2)) { echo '<td class="box_small_red" data-column="Ważność domeny"><div class="box_admin">'.$row["domain_ends"].'</div></td>'; } else { echo '<td class="box_small_green" data-column="Ważność domeny"><div class="box_admin">'.$row["domain_ends"].'</div></td>'; } [/php] |
|
|
19.02.2020, 12:09:10
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 470 Pomógł: 6300 Dołączył: 27.12.2004 |
Cytat to poniższe zapytanie nie działa Nie podales zadnego zapytania tutaj
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
19.02.2020, 12:10:10
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 765 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Więcej niż jeden rekord, który wpada do grupy łączonej poprzez GROUP_CONCAT, tak?
Jak ma więc działać, skoro wynikiem jest kilka dat połączonych w jeden string, a Ty porównujesz całość z datą? -------------------- |
|
|
19.02.2020, 12:10:38
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 470 Pomógł: 6300 Dołączył: 27.12.2004 |
poza tym, moja szklana kula mowi ze:
twoj warunek wyglada tak data1,data2<$oneYearOn2 Wiec niby jakim cudem daty oddzielone przecinkiem (czy czym ty je tam laczysz w GROUP_CONCAT) maja byc od czegos mniejsze/wieksze? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
19.02.2020, 12:16:37
Post
#5
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
|
|
|
19.02.2020, 12:53:30
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 470 Pomógł: 6300 Dołączył: 27.12.2004 |
No juz zapytanie jest zbedne jak dostales od nas wyjasnienie co jest zle.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2020, 08:48:32
Post
#7
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
Czy jest jakiś inny sposób na porównywanie rekordów przy użyciu GROUP_CONCAT ?
|
|
|
20.02.2020, 09:24:18
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 765 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Najpierw musisz odpowiedzieć sobie na pytanie jaką informację chcesz wyświetlić, kiedy jedna data w grupie będzie wygasać, a pozostałe nie (lub odwrotnie).
Możesz albo rozdzielić grupę w PHP i sprawdzać każdą datę z osobna, albo sprawdzić ważność dla grupy (na podstawie warunku j.w.) już w samym zapytaniu. -------------------- |
|
|
21.02.2020, 11:01:46
Post
#9
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
W dużym skrócie posiadam w bazie danych tabele osoby, tabele domeny i tabelę adresy e-mail. Jedna osoba może mieć np. dwie domeny i 6 adresów e-mail przypisanych do danej domeny. W jaki sposób mogę rozdzielić wynik z zapytania GROUP_CONCAT tak abym mógł zrobić konkretne warunki
|
|
|
21.02.2020, 11:14:08
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 765 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Dla każdej daty z osobna będziesz robił warunek?
Jeśli tak, to po co w ogóle sklejasz daty w jeden ciąg? -------------------- |
|
|
21.02.2020, 11:24:07
Post
#11
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
jeżeli nie nie użyje group_concat dla d.domain_end to wynikiem będzie tylko jeden rekord.
|
|
|
21.02.2020, 12:01:25
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 765 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Bo grupujesz po p.id. Tak działa zapytanie.
Zamiast grupować w zapytaniu, wyciągnij normalnie rekordy i pogrupuj je w PHP. -------------------- |
|
|
21.02.2020, 12:09:21
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 470 Pomógł: 6300 Dołączył: 27.12.2004 |
@trueblue juz mu to pisalem w tym temacie
http://forum.php.pl/index.php?showtopic=26...p;#entry1248952 Ale to nie ma znaczenia czy on to grupuje czy nie. Jak grupuje to niech zrobi zwykle EXPLODE i tez bedzie mial tablice. Oba przypadki dadza ten sam efekt: tablice dat. Nie ma znaczenia jak do tego dojdzie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
21.02.2020, 13:12:04
Post
#14
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
Próbowałem przy użyciu explode, jednak utknąłem w miejscu ponieważ nie wiem jak dalej zrobić warunek aby sprawdzał poszczególny rekord.
|
|
|
21.02.2020, 13:18:47
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 470 Pomógł: 6300 Dołączył: 27.12.2004 |
Nie odpowiedziales na zadane wczesniej pytanie:
czy wszystkie daty maja spelniac warunek czy tylko jedna. To bardzo istotne pytanie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
21.02.2020, 13:22:42
Post
#16
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
Tak wszystkie daty
|
|
|
21.02.2020, 14:50:43
Post
#17
|
|
Grupa: Moderatorzy Postów: 36 470 Pomógł: 6300 Dołączył: 27.12.2004 |
No to wrzucasz to w petle i jedziesz
edit: czekaj, nie zwrocilem na zawartosc tego co potem w IF masz. To wiec raczej powinno wygladac tak -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
21.02.2020, 14:51:59
Post
#18
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
|
|
|
21.02.2020, 14:53:21
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 470 Pomógł: 6300 Dołączył: 27.12.2004 |
zobacz moja edycje z poprzednieg posta
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
21.02.2020, 15:00:30
Post
#20
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
Twoje zapytanie działa kiedy wszystkie rekordy spełniają warunek. Natomiast ja potrzebuje czegoś innego tzn. jeżeli jedna z dat spełnia warunek to np. zmienia się jej kolor na box czerwony, a reszta dat zmienia kolor zielony. |
|
|
Wersja Lo-Fi | Aktualny czas: 30.05.2024 - 12:18 |