![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 1 Dołączył: 11.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam banalny problem z MySQL i polem typu datatime w zasadzie sama baza i zapytania działają tak jak chce dlatego nie piszę tego w dziale MySQL, problem pojawia się przy próbie wykonania tych zapytań w zendzie. Sprawa jest dosyć banalna mam DB raporty z której chciałbym za pomocą zapytania wyciągnąć raport w zależności od osoby oraz daty dodania raportu czyli np. coś takiego:
no i zapytanie to działa ale przy próbie wykonania tego w zendzie wywala mi błąd składni... mój model:
w kontrolerze wywołuje:
próbowałem też: $datatime = '2011-06-24 21:55:00'; $datatime = new DateTime('2011-06-24 21:55:00'); generalnie cała ta konstrukcja działa, problem pojawił się gdy chciałem w zapytaniu użyć pola datatime nie wiem jak poprawnie zbudować zapytanie do pola datatime? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
a dlaczego korzystasz z adaptera a nie normalnie z query buildera?
Spróbuj:
Jeszcze w razie co podaj jaki błąd Tobie wywala. Co do Twojego kodu jeszcze, sprawdź sobie co zwraca quoteInto a co zwraca query. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Chyba o czymś zapomniałeś
Kod $obiekt = $this->getAdapter()->query("SELECT * FROM reports WHERE name = $name AND datatime > $datatime"); Kod $obiekt = $this->getAdapter()->query('SELECT * FROM reports WHERE name = $name AND datatime > "'. $datatime .'" '); zrzuć sobie zapytanie przez echo i zobaczysz co jest nie tak. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 1 Dołączył: 11.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak jest zapomniałem o dodatkowym apostrofie przy $datatime już działa
![]() A co do adaptera to zastosowałem go z tego powodu że select() działa dobrze dopóki nie tworzymy bardziej skomplikowanych zapytań bo wtedy wywala błędy nie wiedzieć czemu i 3 dni czytam manuala zamiast kończyć projekt;) Oczywiście wynika to z mojej nie wiedzy a nie winy samego select() ale tak czy inaczej łatwiej mi skonstruować zapytanie wprost w SQL i przetestować w PhpMyAdmin. No i o też nie przejdzie: Kod $this->select()->where('name = ?', $name)->where('datatime > ?', $datatime) $datatime musi być w dodatkowym apostrofie, quoteInto() też nie pomogło trzeba było ręcznie dopisać apostrof pozdrawiam Ten post edytował phpmack 11.12.2011, 11:44:25 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Nigdy nie miałem problemów z select i apostrofami ... ewentualnie jeszcze możesz dorzucić setIntegrityCheck na false jeżeli masz problemy.
Dla jasności:
Pokaż co otrzymujesz bo nie chce mi się wierzyć że nie dodaje apostrofów ![]() -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 1 Dołączył: 11.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Heh no nie wiem czemu ale mi nie działa taki zapis dopiero coś takiego zadziałało:
inaczej zapytanie zwraca pusty wynik teraz nie wiem czemu nie działa wyświetlenia daty z zadanego przedziału:D:
jak wyczytałem wstawienie kilku WHERE spowoduje niejawnie dodanie AND czyli wszystkie warunki muszą być spełnione ale dostaje pusty wynik ![]() oczywiście startowa i końcowa data jest odpowiednio odległa że powinienem dostać wszystkie rekordy.... Już działa - firefox trochę broił po wylogowywaniu nie kasował danych sesji Ten post edytował phpmack 12.12.2011, 11:21:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:35 |