Autor | Zpráva | ||
---|---|---|---|
xtas Profil |
#1 · Zasláno: 27. 8. 2013, 17:08:58
Zdravím,
můžete mi plz někdo osvětlit jak mám přistupovat k výsledku dotazu pomocí fetch_object() když je v sql dotazu použito MAX? (php5 + mysql) tedy konkrétně co nejvíc ořezaný dotaz: SELECT semonlog.srvid, MAX(semonlog.date) from ..... dál to načtu do $obj (pomocí fetch_object()) , a normálně ke všem výsledkům přistupuju ($obj->srvid apod.) a vše je ok kromě semonlog.date. při $obj->date to píše Undefined property: stdClass::$date při $obj->semonlog.date Undefined property: stdClass::$semonlog tak jsem si pomocí print_r zjistil co si o tom objektu myslí system: stdClass Object ( [srvid] => 1 [MAX(semonlog.date)] => 2013-08-20 14:14:02 nicméně při použití $obj->MAX(semonlog.date) nebo MAX(date) to píše Notice: Undefined property: stdClass::$MAX přes fetch_row() to pochopitelně funguje. V čem je problém / jak na to? díky za nápady |
||
juriad Profil |
#2 · Zasláno: 27. 8. 2013, 17:13:04
Tak si ten sloupec prejmenuj
SELECT semonlog.srvid, MAX(semonlog.date) AS maximum from ..... |
||
xtas Profil |
#3 · Zasláno: 27. 8. 2013, 17:25:23
díky, tohle je jedno z řešení. Ale zajímá mě proč se to děje? sql vrátí změněný název té položky (přidá MAX()) a pak už se k ní nedá přes objekt (původní ani změněný název) přistoupit, protože to už není syntakticky správně? Nebo dá a dělám to blbě?
|
||
juriad Profil |
Lze to, ale otázkou je, jestli je to hezké; já bych rozhodně ten sloupec prostě přejmenoval.
<?php class Trida { function __construct($var, $value) { $this->$var = $value; } } $var = 'MAX(a, b)'; $trida = new Trida($var, 1); echo $trida->$var; |
||
Tori Profil |
xtas:
„při použití $obj->MAX(semonlog.date) nebo MAX(date) to píše Notice: Undefined property: stdClass::$MAX“ viz [#4], anebo $obj->{"MAX(semonlog.date)"} . Nicméně už z logiky pojmenovávání proměnných je lepší dát alias - nechcete přeci "výsledek volání funkce MAX nad sloupcem date", ale prostě "nejvyšší datum".
„sql vrátí změněný název té položky (přidá MAX())“ MAX() jste přidal vy. MySQL vrací přesně to, o co si řeknete. |
||
xtas Profil |
#6 · Zasláno: 28. 8. 2013, 13:02:04
diky vsem za vysvetleni
|
||
Časová prodleva: 11 let
|
0