Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyświetlanie w tabeli tylko ostatniego połączenia do klienta
dentopolis
post 30.09.2022, 07:28:22
Post #1





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


pobieram dane z dwóch połączonych tabeli i sortuję wg kolumny pilne z pierwszej tabeli. druga tabela zawiera wykonane telefony do klienta (datetime). chciałbym w tabeli wyświetlić wszystkie dane, ale w kolumnie połączenia mieć tylko datetime ostatniego połączenia. jak to zrobić?

  1. SELECT * FROM oczekujacy LEFT JOIN oczekujacytelefon ON oczekujacy.id=oczekujacytelefon.kto ORDER BY pilne DESC";



  1. echo "<td><a href='polaczenia.php?kto=$id'>";
  2. echo $polaczenie;
  3. echo "</a></td>";


Ten post edytował dentopolis 30.09.2022, 08:29:59
Go to the top of the page
+Quote Post
Salvation
post 30.09.2022, 20:50:52
Post #2





Grupa: Zarejestrowani
Postów: 338
Pomógł: 70
Dołączył: 15.07.2014

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


Posortuj to jeszcze po datetime malejąco + pokombinuj z GROUP BY - ale ręki nie dam sobie obciąć.
Jak nie zadziała pobranie z bazy tak jak chcesz, to zawsze możesz zrobić z wynikiem co chcesz w PHP.
Go to the top of the page
+Quote Post
dentopolis
post 4.11.2022, 18:21:57
Post #3





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


w jaki sposób mogę w php pobrać tylko najnowszą datę?

mój obecny kod:
  1. $sql = "SELECT oczekujacy.id AS id, oczekujacy.pacjent AS pacjent, oczekujacy.telefon AS telefon, oczekujacy.lekarz AS lekarz, oczekujacy.kategoria AS kategoria, oczekujacy.pilne AS pilne, oczekujacy.dojazd AS dojazd, oczekujacy.dostepny AS dostepny, oczekujacy.informacje AS informacje, oczekujacy.wpisany AS wpisany, oczekujacy.archiwum AS archiwum, oczekujacytelefon.kto AS kto, oczekujacytelefon.polaczenie AS polaczenie FROM oczekujacy LEFT JOIN oczekujacytelefon ON oczekujacy.id=oczekujacytelefon.kto WHERE archiwum = 0 ORDER BY kategoria ASC, pilne DESC";
  2. $result = $conn->query($sql);
  3.  
  4. if ($result->num_rows > 0) {
  5. while($row = $result->fetch_assoc()) {
  6.  
  7. $id = $row['id'];
  8. $polaczenie = $row['polaczenie '];
  9.  
  10. echo $polaczenie;
Go to the top of the page
+Quote Post
trueblue
post 4.11.2022, 19:14:57
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


A gdzie w zapytaniu jest data?
Chcesz pobrać pulę rekordów i wśród nich znaleźć najwcześniejszą datę czy pobrać jeden rekord z tą datą?

P.S. Poczytaj o aliasach w MySQL, bo obecnie stosujesz je w sposób niezgodny z ich przeznaczeniem (utrudniasz sobie pracę).


--------------------
Go to the top of the page
+Quote Post
aras785
post 4.11.2022, 20:14:33
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


tutaj masz rozwiązania: https://stackoverflow.com/questions/3619030...recent-row-only

jeśli faktycznie zależy Ci na jednym polu typu datetime (polaczenie) to można tak:


  1. SELECT oczekujacy.id AS id,
  2. oczekujacy.pacjent AS pacjent,
  3. oczekujacy.telefon AS telefon,
  4. oczekujacy.lekarz AS lekarz,
  5. oczekujacy.kategoria AS kategoria,
  6. oczekujacy.pilne AS pilne,
  7. oczekujacy.dojazd AS dojazd,
  8. oczekujacy.dostepny AS dostepny,
  9. oczekujacy.informacje AS informacje,
  10. oczekujacy.wpisany AS wpisany,
  11. oczekujacy.archiwum AS archiwum,
  12. MAX(oczekujacytelefon.polaczenie) AS polaczenie
  13. FROM oczekujacy
  14. LEFT JOIN oczekujacytelefon ON oczekujacy.id = oczekujacytelefon.kto
  15.  
  16. WHERE archiwum = 0
  17. GROUP BY oczekujacy.id
  18. ORDER BY kategoria ASC, pilne DESC


i jakbyś chciał posortować po "polaczenie" to: ORDER BY MAX(oczekujacytelefon.polaczenie) ASC lub DESC

Ten post edytował aras785 4.11.2022, 20:15:06
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 05:33