Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie, które zwraca daty
Forum PHP.pl > Forum > Bazy danych > MySQL
fiasko
Potrzebuję zrobić zapytanie , które zwróci mi daty z pomiarami z każdego dnia w danym zakresie wybranych dat . Problem w tym , że urządzenie pomiarowe czasem może nawalić i wtedy w bazie nie ma pomiaru w ciągu jakiegoś dnia.
np:

Robie takie zapytanie.
Kod
$_query_data= mysql_query("Select * from baza Where id=2 and date >='2011-01-01' and date <= '2011-02-06' order by date");


Wszystko jest ok . Ale gdy np. między 3 a 5 dniem zespół się system pomiarowy, to chcę mieć wyniki również z 4 dnia z pustymi danymi.

Da rady stworzyć takie zapytanie ?
markonix
A z poziomu PHP nie możesz przechwycić tych luk?

Jeśli już koniecznie w ramach zapytania to zostaje JOIN z jakąś tabelą pomocniczą z datami.
fiasko
Ah napisałem sobie w PHP : Myślałem, że można dać może takie zapytanie bardziej skomplikowane. Nie znam jeszcze tak super mysql. Więc nie wiem czy da rady zbudować takie zapytanie. No ale tu mam rozwiązanie w PHP.

Kod
$czas_od = "2011-01-1";
$czas_do = "2011-02-6";
$czas_od = strtotime($czas_od);
$czas_do = strtotime($czas_do);

while($czas_od <=$czas_do ){

$czas_wyn = strftime('%Y-%m-%d',$czas_od);

$daty_query = mysql_query("Select * from dane Where site_id = 2 and key_id = 2 and date = '".$czas_wyn."' ");

        $gdy = 0;
        while($daty_tab = mysql_fetch_assoc($daty_query)) {
        
        $tab_czasu[] =strftime('%Y-%m-%d',$czas_od);
              //  =$daty_tab['date'];
        $gdy++;
        } //druga while koniec
if($gdy == 0 ){
$tab_czasu[] =strftime('%Y-%m-%d',$czas_od);
}

  $czas_od = $czas_od+86400;
}
echo "<pre>";
print_r($tab_czasu);
echo "</pre>";


Oczywiście teraz muszę tylko dopisać dane gdzie mają wpadać , gdy nie mam pomiaru. guitar.gif

Bałem się, że będę musiał obliczać lata przestępne itd. uf
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.