PDA

View Full Version : Newbie Question


sambah
06-05-2006, 01:21 AM
I've decided to make a fantasy football/sports mod for vb 3.5.4

I'm quite new to php and a complete novice with vb.

First stage went ok. Users can now register for the fantasy football league. Now I'm onto the main page.

What I'm trying to do with this code is tell users who havn't signed up for the league yet to go to the signup page, and users who have should proceed to the main page.

// ############################# START MAIN PAGE ###############################

// Check whether the user has registered for the game
if (!$vbulletin->GPC['do'])
{
if ($db->query_first("SELECT * FROM footy_registration WHERE userid != " . $vbulletin->userinfo[userid] . ""))
{
standard_error(fetch_error('footy_youneedtoregiste r'));
}
else
{
eval('print_output("' . fetch_template('footy_main') . '");');
}
}

This code in theory should check whether their userid from the vb userinfo table is present and matches their userid in the game registration table.

Unfortunately it doesn't work. Even if they have signed up it still displays the younneedtoregister message :(

Any ideas?

Sorry:

PHP Version: 5.1.4
SQL: 4.1.19

Adrian Schneider
06-05-2006, 02:01 AM
Your query was a little off (in logic, anyway). You were checking if there are any results from the registration table where the userid isn't the current user. If there are any registrations, this is always true.

I changed it so it checks if there isn't (actually if there is, then adding a ! in front of the whole condition so its the opposite) any registrations for the given user. Also, you should quote array keys if they are strings, because if 'userid' is a defined constant, you will run into problems.
// ############################# START MAIN PAGE ###############################

// Check whether the user has registered for the game
if (!$vbulletin->GPC['do'])
{
if (!$db->query_first("SELECT * FROM footy_registration WHERE userid = " . $vbulletin->userinfo['userid'] . ""))
{
standard_error(fetch_error('footy_youneedtoregiste r'));
}
else
{
eval('print_output("' . fetch_template('footy_main') . '");');
}
}

sambah
06-05-2006, 02:05 AM
Aha. Thankyou very much sir :)

Adrian Schneider
06-05-2006, 02:06 AM
It might be easier (to understand at a simple glance) if you get rid of the ! in front of the $db->query_first(), then switch the standard error with the print_output.