Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PHP i vracanje datuma iz baze

[es] :: PHP :: PHP i vracanje datuma iz baze

[ Pregleda: 3064 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon PHP i vracanje datuma iz baze14.07.2010. u 09:22 - pre 166 meseci
Imam upit u MySQL koji glasi
Code (mysql):
select * from t1 where neki_datum = '2010-07-14' and aktivan = 1

i to u MySQL-u radi.
Kolona neki_datum u MySQL je datetime i ovaj unos je u formatu 2010-07-14 00:00:00 npr.

Ovaj datum dobijam preko date funkcije PHP-a.
Ali kad ovaj upit izvrsavam sa PHP skriptom ne vraca mi nikakav rezultat.
Evo koda.

Code (php):

$danasnjiDatum = date("Y-m-j");

$sqlP = "select * from t1 where neki_datum = '".$danasnjiDatum."' and aktivan = 1";
$result = mysql_query($sqlP) or die ('Upit neuspesan: ' . mysql_error());
while($row = mysql_fetch_assoc($result)) {
  $sqlU = "update t2 set status = 6";
  echo $sqlU;
  //mysql_query($sqlU);
}
 


PHP 5.3.1 i MySQL 5.5.3m su u pitanju.

Ako stavim DATE_FORMAT(neki_datum,'%Y-%m-%d') u upit to radi, ali to je radilo prije upgradea na MySQL 5.5.
Sad, logicno je pretpostaviti da treba traziti problem u MySQL-u, ali kao sto rekoh u MySQL taj upit radi i sa "kratkim" datumom i zato ganjam PHP.

Imam neopisiv osjecaj da sam previdio nesto nevjerovatno prosto, ali ja ne mogu to da vidim :-)


Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
213.147.114.*



+26 Profil

icon Re: PHP i vracanje datuma iz baze14.07.2010. u 10:05 - pre 166 meseci
Baš ovaj problem sam ja imao neki dan, i znam da sam ga riješio, ali se ne sječam što je točno bilo u igri, čim dođem doma s posla pogledam u kod pa ti javim, ako me neko ne prođe naravno :)
EDIT probaj vako

date ("Y-m-d"); ova leading nula bi mogla da te zeza, makar za današnji datum to ne bi trebao biti problem :P
there's no place like 127.0.0.1
 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 08:17 - pre 166 meseci
Ne, ovo sa date ("Y-m-d") nista nije promjenilo...
Stvarno mi nije jasno u cemu je problem. Zaobicicu ovo sad, ali ne volim da budzim stvari.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 08:29 - pre 166 meseci
^^ Gornji php kod je nepotpun... a i nisi objasnio kako se manifestuje izvrsenje koda, tj. sta se ispise/ne ispise.
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 09:24 - pre 166 meseci
Pa nema nista vise osim php tagova i konekcije na bazu koja je sigurno ok.
Ne ispise se nista a trebalo bi bar jedan rekord kao sto sam naveo gore, jer sam provjerio taj upit koji PHP izgenerise direktno u bazi i on radi ako ga ja rucno pokrenem. Ali ako to radi PHP ne vraca nista. PHP izvrsi upit u sustini ali ni jedan rekord ne zadovoljava uslove. Sto nije tacno.
error_reporting isto nista ne prijavljuje.

Ja sam sad to zaobisao tako sto sam promjenio upit i stavio
Code:

select * from t1 where neki_datum > '".$datumJuce."' and neki_datum < '".$datumSutra."'


i sad vraca kako treba, ali moralo bi da radi i ovako kako sam prvi put uradio. I radilo je do upgradea. Moguce da je neki bug u pitanju.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.static.kdsinter.net.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 09:30 - pre 166 meseci
Ovo sam i ja primetio (ili mozda ja ne znam tacno da napisem upit xD).

Uglavnom, WHERE datum = '2010-07-15' ne daje zeljene rezultate, tako da ja isto zaobilazim ali sa WHERE datum LIKE '2010-07-15%'. Hack, but it works.
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 09:51 - pre 166 meseci
Pa bice da je do toga sto radis sa DATETIME formatom. MySQL to izgleda "nadopunjava" nekako kroz klijent i pravi ispravan DATETIME podatak, pa zato radi. PHP izgleda to ne radi, vec salje upit kako si mu napisao, pa to ne radi..

Resenje (lakse i sigurnije) je vec dao kazil, ili drugi nacin je da napravis ispravan DATETIME podatak (sa HH:MM:SS postavljenim na 00:00:00 valjda).

http://dev.mysql.com/doc/refman/5.0/en/datetime.html
Citat:
The DATETIME type is used when you need values that contain both date and time information. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.


P.S. Koliko vidim, postoji i treci nacin, da mu kazes da konvertuje ono sto dobije kao da je date format u datetime format:
Citat:
CAST(expr AS type)

http://dev.mysql.com/doc/refma...t-functions.html#function_cast
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-3.sezampro.yu.



+395 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 09:57 - pre 166 meseci
@Tyler Durden
Isprintaj $danasnjidatum pre pravljenja upita i vidi koji format vraca tj. da li je ukljuceno vreme .
Ako jeste , onda je to problem .


Viva lollapalooza
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 10:02 - pre 166 meseci
^^ Sta ima da ga printa, upit ce u php-u biti
Code:
select * from t1 where neki_datum = '2010-07-15' and aktivan = 1


Pitanje je samo da li ce mysql to konvertovati kako treba u datetime format ili ne. KOliko vidimo iz prilozenog - izgleda da ne.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
*.dynamic.sbb.rs.



+3 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 10:05 - pre 166 meseci
Ja sam sad pokusao sto se kaze da "stvorim taj bug" kod sebe ali nisam uspeo - upit radi i direktno iz mysql-a i pomocu php-a.
Znaci vraca jedan red kad u bazi imam neki_datum(datetime) unet u obliku ''2010-07-15 00:00:00''

Nije isto okruzenje ali daje zeljene rezultate, PHP 5.2.10, MySQL 5.1.48, mysqli ekstenzija.
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.static.kdsinter.net.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 10:05 - pre 166 meseci
Vidis, o kastovanju uopste nisam razmisljao, tako da bi mozda najpravilnije bilo da se napise WHERE CAST(datum AS date) = '2010-07-12'
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
213.147.114.*



+26 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 10:09 - pre 166 meseci
Citat:
Jbyn4e:
The DATETIME type is used when you need values that contain both date and time information. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.


al budu brige tamo za 7990 godina, joooj da mi je to vidjet
there's no place like 127.0.0.1
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.static.stelkom.net.



+18 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 12:44 - pre 166 meseci
Ma nece biti, pocece se god. brojat unazad za par hiljada :D
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 12:46 - pre 166 meseci
Mozda nije ono sto ti treba, al, ako ti vec treba danasnji datum, zasto ne uradis:

Code:

SELECT ... FROM ... WHERE datum = CURDATE()


A ako ti treba neki prethodni/naredni datum, uvek mozes da radis:

DATE_ADD i DATE_SUB

Generalno, probaj da logiku sa datumima prebacis komplet na MySQL ... Bar se ja uvek trudim da radim tako :-) http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

P.S. Kao sto neko rece, moze biti da ti problem pravi DATETIME tip kolone. On bi po defaultu (ako mu ne prosledis vreme) trebao da upise: "y-m-d 00:00:00", tako da, ako bas insistiras da datum formatiras u PHP-u, probaj da ovako kreiras datum:

Code (php):


$date = date ("Y-m-d 00:00:00");

 


Pozz !

 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Re: PHP i vracanje datuma iz baze15.07.2010. u 13:00 - pre 166 meseci
Hvala svima na predlozima.
Zaobisao sam ovo vec kao sto sam i napisao, tako nije vise to u pitanju nego me interesuje sta se promjenilo sa 5.1.x na 5.5.x, no dobro, nije strasno.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

[es] :: PHP :: PHP i vracanje datuma iz baze

[ Pregleda: 3064 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.