basicly this first code checks if result is anything
and it doesn't work for some reason
PHP Code:
//------------------------------------------------
// Check if resultset contains any rows
//------------------------------------------------
if ($DB->num_rows($result))
{
while($obj = $DB->fetch_array($result, MYSQL_ASSOC))
{
$results[$obj['member_id']] = $SESSION->parse_data($obj, array());
$profile_types[$obj['type_id']][] = $obj['member_id'];
}
}
this one does the same thing and with some errors work ( $sqlitems needs to be defined as array() i think
)
but is more complicated and i can't understand where is the diference in code
PHP Code:
if ( $DB->num_rows($result) )
{
if ( $sqlitems ) {
while($obj = $DB->fetch_array($result, MYSQL_ASSOC))
{
$member_ids[] = $obj['member_id'];
$members_obj[$obj['member_id']] = $obj;
}
$result = $DB->query("SELECT * FROM " . DB_PREFIX . "members_items WHERE field_id IN (".implode(",", $sqlitems).") AND data_id IN (".implode(",", $member_ids).")");
while($obj = $DB->fetch_array($result, MYSQL_ASSOC))
{
if ( !isset($members_obj[$obj['data_id']]['items']) ) {
$members_obj[$obj['data_id']]['items'] = array();
}
if ( !isset($members_obj[$obj['data_id']]['items'][$obj['field_id']]) ) {
$members_obj[$obj['data_id']]['items'][$obj['field_id']] = array();
}
$members_obj[$obj['data_id']]['items'][$obj['field_id']][] = $obj['item_id'];
}
$i = 0;
foreach ( $members_obj as $obj ) {
$results[$i] = &$SESSION->parse_data($obj, array(
'member_id' => 'member_id',
'groups' => 'group_in_browse',
'fields' => 'field_in_browse',
)
);
$i++;
}
}
else {
$i = 0;
while($obj = $DB->fetch_array($result, MYSQL_ASSOC))
{
$results[$i] = &$SESSION->parse_data($obj, array(
'member_id' => 'member_id',
'groups' => 'group_in_browse',
'fields' => 'field_in_browse',
)
);
$i++;
}
}
}