Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak pominąc duplikaty w pętli
Forum PHP.pl > Forum > Przedszkole
nos150
Tak jak w temacie napisałem kod żeby wyodrębnić dany rok i miesiąc ale jak pominąć duplikaty
  1. $druki_query = mysqli_query($con, "SELECT * FROM prace WHERE user_id ='{$_SESSION["current_user"]}' ");
  2. while($druki=mysqli_fetch_array($druki_query)) {
  3. $date = substr($druki['data_'], 0, 7);
  4. $miesiac = substr($druki['data_'], 5, 2);
  5. $rok = substr($druki['data_'], 0, 4);
  6.  
  7.  
  8. echo '<a href="a4.php?date_start='.$rok.'-'.$miesiac.'-01&date_end='.$rok.'-'.$miesiac.'-'.iledni($rok, $miesiac).'" target="_blank">'.$rok.'-'.$miesiac.'</a><br>';
  9.  
  10. }
  11.  
Salvation
1. Skoro potrzebujesz tylko kolumny "data_", to po co pobierasz wszystkie (*) przez SQL?
2. Kolumna "data_" ma format DateTime?
3. Możesz spróbować takiego zapytania:
  1. SELECT DISTINCT `data_` FROM `prace` WHERE `user_id` = '{$_SESSION["current_user"]}'
nos150
Kolumna data_ zawiera:
2023-04-12
2023-04-13
2023-04-14
2023-06-01
2023-06-02
2023-06-06 itd

A chciałbym uzyskać coś takiego:
2023-04
2023-06

To co napisałeś nie nadaje, bo jak widzisz kolumna data_ tak naprawdę nie zawiera duplikatów.
trueblue
  1. SELECT DISTINCT DATE_FORMAT(data_,'%Y-%m') AS DATA
  2. FROM `prace`
  3. WHERE `user_id` = '{$_SESSION["current_user"]}'

Tomplus
Polecam propozycję @trueblue.

Alternatywnie,
zamiast używać substr, użyj explode.

  1. $data = explode('-', $druki['data_']);
  2. echo sprintf("%d-%d", $data[0], $data[1]);
Salvation
Cytat(Tomplus @ 5.01.2024, 18:43:47 ) *
Alternatywnie,
zamiast używać substr, użyj explode.

  1. $data = explode('-', $druki['data_']);
  2. echo sprintf("%d-%d", $data[0], $data[1]);


Po co? "date_" jest pełnoprawną datą, więc wystarczy:
  1. $date = DateTimeImmutable::createFromFormat('Y-m-d', $druki['data_']) ?: null;
  2. echo $date?->format('Y-m') ?? '';

Manual: https://www.php.net/manual/en/datetimeimmut...efromformat.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-2024 Invision Power Services, Inc.