PDA

View Full Version : query not working right


harmor19
01-21-2007, 12:55 PM
Here is the code

########################## Displays Hosted Users ############################
if($_REQUEST['do'] == "users")
{

($hook = vBulletinHook::fetch_hook('hosting_users_start')) ? eval($hook) : false;

if(($permissions['hostingpermissions'] & $vbulletin->bf_ugp['hostingpermissions']['canviewuserlist'] == 0))
{
eval(standard_error(fetch_error('cannot_view_user_ list')));
}


// Default page variables
$perpage = $vbulletin->input->clean_gpc('r', 'perpage', TYPE_UINT);
$pagenumber = $vbulletin->input->clean_gpc('r', 'pagenumber', TYPE_UINT);

$hosted = $db->query_first("
SELECT COUNT(`planid`) AS `hosted`
FROM `" . TABLE_PREFIX . "user` WHERE planid > '0'
");

sanitize_pageresults($hosted['hosted'], $pagenumber, $perpage, 100, 25);

$limitlower = ($pagenumber - 1) * $perpage + 1;
$limitupper = $pagenumber * $perpage;
if ($limitupper > $hosted['hosted'])
{
// Too many for upper limit
$limitupper = $hosted['hosted'];
if ($limitlower > $hosted['hosted'])
{
// Too many for lower limit
$limitlower = $hosted['hosted'] - $perpage;
}
}
if ($limitlower <= 0)
{
// Can't have negative or null lower limit
$limitlower = 1;
}

$getlinks = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "user WHERE planid > '0' LIMIT " . ($limitlower - 1) . ", $perpage");
while($user = $db->fetch_array($getlinks))
{
if(can_admin_hosting())
{
$canadminhosting = 1;
}

eval('$member_links .= "' . fetch_template('hosting_member_links_list') . '";');
}

$pagenav = construct_page_nav($pagenumber, $perpage, $hosted['hosted'], 'hosting.php?' . $vbulletin->session->vars['sessionurl'] . 'do=users');

$navbits = array();
$navbits[$parent] = 'Member Links';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');

($hook = vBulletinHook::fetch_hook('hosting_users_complete' )) ? eval($hook) : false;

eval('print_output("' . fetch_template('hosting_member_links') . '");');
}

What it's supposed to do is list the users where "planid" is greater than 0 but there's a little problem. If your "planid" has never been changed then you won't show up in the list but if it was changed then changed back to zero then you still show up in the list. I don't know what's going on.

Attilitus
01-21-2007, 03:25 PM
Modify the default value in your database to be 0. Or is that already the case?

Code Monkey
01-21-2007, 04:27 PM
Try not wrapping your integers in quotes. Mysql may be viewing 0 as a string.

harmor19
01-21-2007, 08:59 PM
I fixed it. I was looking at the wrong thing. When I make a search I didn't add the condition "planid > 0"

I changed

$getsite = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "user WHERE username LIKE \"%".$db->escape_string($vbulletin->GPC['searchstring'])."%\"");

To

$getsite = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "user WHERE username LIKE \"%".$db->escape_string($vbulletin->GPC['searchstring'])."%\" AND planid > 0 ");