NetteDatabase: V datech z MySQL se objevují „nuly“ tam kde se má vracet VARCHAR
- Achse
- Člen | 44
Zdravím, mám celkem kuriózní problém. Načítám data z databáze, dvojitý left join, (dvojitá vazba 1:1).
Ukázka celé funckce jež vrací data z Databáze. V tomto případě
se $type == 'dojo'
public function getProfile($id, $type) {
if (!in_array($type, $this->getTypesKeys())) {
throw new \InvalidArgumentException("Invalid type: '{$type}'");
}
return $this->db->fetch("
SELECT * FROM profile
LEFT JOIN _{$type} ON profile.id = _{$type}.profile_id
LEFT JOIN branch ON profile.id = branch.profile_id
WHERE profile.id = ?", $id);
}
Dumpnutá data:
Nette\Database\Row(31) {
id ⇒ 1
type ⇒ „dojo“ (4)
user_id ⇒ 2
time_created ⇒ „2011–11–30 00:25:34“ (19)
time_updated ⇒ „2011–11–30 00:25:36“ (19)
flag_organisation ⇒ „1“
profile_id ⇒ 2
name ⇒ 0
organisation_name ⇒ „Achses Dojo“ (11)
url_website ⇒ ""
url_facebook ⇒ ""
url_map ⇒ ""
url_youtube ⇒ ""
url_youtube_channel ⇒ ""
contact_email ⇒ ""
contact_telephone ⇒ ""
owner_name ⇒ ""
owner_surname ⇒ ""
contact_name ⇒ ""
contact_surname ⇒ ""
contact_title ⇒ ""
location_continent ⇒ „europe“ (6)
location_country ⇒ 0
location_state ⇒ „praha“ (5)
location_city ⇒ „praha“ (5)
flag_hq ⇒ „0“
address_city ⇒ „Prague“ (6)
address_street ⇒ 0
address_postalcode ⇒ „12345“ (5)
address_country ⇒ „Czech Republic“ (14)
custom_name ⇒ „Hlavní HQ od Achses DOJO“ (25)}
Tučně jsou vyznačené ‚divné‘ řádky. Měly by tam být VARCHAR data. Když ten samý dotaz proženu PHPmyAdminem, vše je v pořárku.
Verze Frameworku: Nette Framework (version 2.0-dev released on 2011–12–07)
Struktura tabulek:
---------------------------------------------------------
_dojo
id int(20)
profile_id int(20)
name varchar(200)
organisation_name varchar(200)
url_website varchar(200)
url_facebook varchar(200)
url_map varchar(200)
url_youtube varchar(200)
url_youtube_channel varchar(200)
contact_email varchar(200)
contact_telephone varchar(200)
owner_name varchar(200)
owner_surname varchar(200)
contact_name varchar(200)
contact_surname varchar(200)
contact_title varchar(200)
---------------------------------------------------------
---------------------------------------------------------
profile
id int(27)
type enum('agent','cardgirl','dojo','fighter','group','healthpro','ppvpub','promoter','sensei')
user_id int(11)
time_created datetime
time_updated datetime
flag_organisation tinyint(1)
---------------------------------------------------------
---------------------------------------------------------
branch
id int(32)
location_continent varchar(200)
location_country varchar(200)
location_state varchar(200)
location_city varchar(200)
profile_id int(27)
flag_hq tinyint(1)
address_city varchar(400)
address_street varchar(400)
address_postalcode varchar(400)
address_country varchar(400)
custom_name varchar(200)
---------------------------------------------------------
Díky za pomoc.
Editoval Achse (29. 12. 2011 21:18)