Pomógł: 13 razy Dołączył: 26 Sie 2009 Posty: 1171 Skąd: Skąd?
Wysłany: 2010-03-17, 18:05 [php + mysql] to ci dopiero kłopocik
No to tak.. Otrzymuje pomiary z czujników przekazywane do bazy danych.
Mam napisać stronkę dla użytkownika, który może przeglądać rezultaty pomiarów "od kiedyś"-"do kiedyś".
W pierwszym kodzie mam pobrane możliwe daty z bazy. Wybieramy sobie początek i koniec czasu pomiarów:
Kod:
while ($data_tab2=mysql_fetch_array($data_sort2)){
$cid=$data_tab2['id_hub'];
$cdata=htmlspecialchars($data_tab2['time']);
echo "<option value='$cid'>$cdata</option>\n";
}
Ok, a teraz mamy przekierowanie do strony, która wyświetla nam wyniki. No i niestety nie działają mi ograniczenia, nawet dla opcji bez ograniczeń: t>0
Kod:
$where=" WHERE id_hub>'$cid'";
$pomiarki=@mysql_query("SELECT time, msrt FROM testowa ".$where);
Pomógł: 15 razy Dołączył: 06 Maj 2007 Posty: 659 Skąd: Wieluń
Wysłany: 2010-03-17, 19:31
A chwila moment to zapytanie w ogóle jest dobrze nie masz cudzysłowia zamkniętego. Jeśli chciałbyś umieścić cudzysłów w zmiennej $where musisz użyć slash \" albo zamknąć zapytanie po where.
Najpierw zmień na:
$pomiarki=@mysql_query("SELECT time, msrt FROM testowa ");
Pomógł: 13 razy Dołączył: 26 Sie 2009 Posty: 1171 Skąd: Skąd?
Wysłany: 2010-03-17, 19:42
Wyrzucenie wszystkich zmiennych działa.
Przedtem w warunku było:
$where=" WHERE time>'$cid'";
$pomiarki=@mysql_query("SELECT time, msrt FROM testowa ".$where);
I tu był błąd. Bo wartość odczytywana to było id pomiaru, a nie jego czas. Więc kod, który tam jest wklejony, jest poprawny.
Teraz muszę wymyślić jak to zrobić, żeby pokazywał mi się kalendarz i jak kliknę na jakiś dzień to będzie moje ograniczenie
Pomógł: 15 razy Dołączył: 06 Maj 2007 Posty: 659 Skąd: Wieluń
Wysłany: 2010-03-17, 20:08
No dobrze ale to where przecież masz poza zapytaniem:
$pomiarki=@mysql_query("SELECT time, msrt FROM testowa ".$where);
a nie np:
mysql_query("SELECT time, msrt FROM testowa WHERE `id`='$id'");
Albo już mi się myli bo ja nigdy nie operowałem na zmiennych w warunku WHERE, zawsze wstawiłem zmienną bezpośrednio WHERE `pole`='$zmienna'
Pomógł: 15 razy Dołączył: 06 Maj 2007 Posty: 659 Skąd: Wieluń
Wysłany: 2010-03-17, 20:31
A no rzeczywiście, sory za zamieszanie nigdy nie robiłem tym sposobem. To teraz w zasadzie już nie wiem co chcesz osiągnąć bo warunek jest poprawny. A co przechowuje zmienna $cid i pola time? Jaki typ w bazie? Tak we fragmencie będzie w ogóle ciężko pomóc jak się nie ma całego kodu i bazy, ale być może jakaś niezgodność typów między zmienną $cid a typem pola w bazie.
Ogólnie z datami jest problem zobacz jaki ja musiałem niedawno myk robić żeby osiągnąć to co chciałem:
mysql_query("INSERT INTO `klienci` (`login`, `haslo`, `info`, `adres`, `wygasnie`, `dodany`) VALUES ('$login', '$haslo', '$info', '$adres', DATE_ADD(NOW(),INTERVAL ". (int)$wygasnie ." DAY), NOW())"
i
$sql2=mysql_query("SELECT `wygasnie` FROM `klienci` WHERE `id`='$id'");
$ile=mysql_fetch_row($sql2);
$sql3=mysql_query("UPDATE `klienci` SET `wygasnie`=DATE_ADD('".$ile[0]."',INTERVAL 30 DAY) WHERE `id`='$id'");
Pomógł: 15 razy Dołączył: 06 Maj 2007 Posty: 659 Skąd: Wieluń
Wysłany: 2010-03-17, 21:13
Tak, dodaj w zapytaniu: ORDER by`nazwa_pola` [ASC | DESC]
Nie widzę w tym kodzie co napisałeś tego zapytania co wyświetla daty więc podam Ci przykład ze swojego:
mysql_query("SELECT `login`, `haslo`, `adres`, `wygasnie`, `id` FROM `klienci` ORDER by `wygasnie` ")
i ASC jest deafult (rosnąco), niekonieczne do wpisania
Pomógł: 15 razy Dołączył: 06 Maj 2007 Posty: 659 Skąd: Wieluń
Wysłany: 2010-03-17, 23:01
Rafał tylko ja tak w zasadzie nie wiem co Ty chcesz konkretnie osiągnąć?
Wybieramy datę od do i potem z tego zakresu mają się wyświetlić pola z msrt?
A tak w ogóle to wy to macie jakieś obowiązkowe na studiach czy tak to robisz? Bo powiem Ci szczerze że są to dość prymitywne skrypty, na początek nauki w technikum informatycznym...
Ale pewnie zależy od kierunku studiów
Pomógł: 13 razy Dołączył: 26 Sie 2009 Posty: 1171 Skąd: Skąd?
Wysłany: 2010-03-17, 23:53
Ogólnie ma być to projekt inżynierski na zastosowanie złożonych systemów programowania [;
Podstawą jest php, który ma wszystkim sterować, więc jest najważniejszy, a tym zajmuje się ja reszta przekazuje sobie tylko impulsy, wartości pomiarowe lub rozkazy. Nigdy wcześniej nie miałem do czynienia z php czy mysql, więc uczę się od podstaw.
[ Dodano: 2010-03-17, 23:55 ]
Skrypt ma wyselekcjonować odpowiednie pomiary wykonane wcześniej przez czujniki i przefiltrowane przez program w C.
Czyli wybór czujników, częstotliwość pomiarowa, wykaz pomiarów, aproksymacja wyników.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum