Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie, które zwraca daty
fiasko
post 6.02.2011, 20:55:45
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

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


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 ?
Go to the top of the page
+Quote Post
markonix
post 6.02.2011, 23:32:30
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


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.


--------------------
Go to the top of the page
+Quote Post
fiasko
post 7.02.2011, 00:33:36
Post #3





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

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


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

Ten post edytował fiasko 7.02.2011, 00:34:33
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: 15.06.2025 - 02:36