Kom på ett alternativt sätt. Följande är åtminstone snyggare att se på:
Kod:
$query = sprintf("SELECT category_id, category_name FROM %s WHERE language_id=%d OR language_id=%d ORDER BY language_id ASC",
$DBTABLES['shop']['category_description'],
DEFAULT_LANGUAGE,
$user->language_id
);
$result = mysql_query($query);
while ($o = mysql_fetch_object($result)) {
if (!empty($o->category_name)) {
$categories[$o->category_id]->category_name = $o->category_name;
}
}
mysql_free_result($result);
Finns det bättre lösningar?
EDIT: Det här fungerar inte om DEFAULT_LANGUAGE > $user->language_id. Måste komma på något smartare.
EDIT2: Det här fungerar nog alltid:
Kod:
// Category descriptions:
$query = sprintf("(SELECT category_id, category_name FROM %s WHERE language_id=%d) UNION (SELECT category_id, category_name FROM %s WHERE language_id=%d)",
$DBTABLES['shop']['category_description'],
DEFAULT_LANGUAGE,
$DBTABLES['shop']['category_description'],
$user->language_id
);
$result = mysql_query($query) or trigger_error(sprintf("(%d)\n%s\nWhole query:\n%s", mysql_errno(), mysql_error(), $query), E_USER_ERROR);
while ($o = mysql_fetch_object($result)) {
$categories[$o->category_id]->category_name = $o->category_name;
}
mysql_free_result($result);
Är det en bra lösning?