Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Skomplikowany select
Forum PHP.pl > Forum > Bazy danych > MySQL
shane54
Witam - może pomożecie bo nie wiem jak to ugryźć:

Stworzyłem sobie tabele `czynnosci` która ogólnie mówiąc przypomina mi do kogo kiedy mam zadzwonić.

Dziś jest 19 marca więc zadzwoniłem do firmy `1` ale nikt nie odebrał więc dodałem wpis do bazy
że dzwoniłem i mam się skontaktować dnia 21.03

Chodzi o to żeby utworzyć taki SELECT
aby zwracał dzisiaj tylko te firmy z którymi mam się dzisiaj skontaktować i dla których nie jeszcze utworzyłem nowego wpisu do tabeli na przyszłość.

  1. Tabela `czynnosci` wygląda tak:
  2. id, idfirmy, uwagi, datakontaktu, datanastepnegokontaktu
  3. 1 1 dzwoniłem 19.03.2011 21.03.2011



Dziś jest 19.03.2011 więc po takim wpisie do bazy SELECT powinien zwrócić 0 rekordów

Ale za to jak będzie 21.03.2011
Ten select powinien zwrócić ten właśnie rekord który istnieje w bazie danych

Jak go skomponować?

Dodam tylko co próbowałem:
SELECT MAX(id), idfirmy`, `uwagi`, `datakontaktu`, `datanastepnegokontaktu` FROM `czynnosci` WHERE `datanastepnegokontaktu`=CURDATE( ) GROUP BY `idfirmy` ORDER BY `datanastepnegokontaktu`
niestety nie trybi tak jak powinno
BaN
Dlaczego daty nie są zapisywane jako daty MySQL, tak wnioskuję z danych, które przedstawiasz, bo MySQL ma format daty Y-m-d
Ale może to już wynik po zastosowaniu formatowania? Jeśli nie, to zmień typy pól na prawidłowy
  1. $data_aktualna = date('Y-m-d');
  2. $query = "SELECT *
  3. FROM czynnosci
  4. WHERE
  5. (datakontaktu='$data_aktualna' AND datanastepnegokontaktu<>'$data_aktualna')
  6. OR
  7. datanastepnegokontaktu='$data_aktualna'";
gino
nie mówiąc już tego, że MAX(id) zwróci tylko jeden rekord

gino
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.