PDA

View Full Version : Retrieving lastvisit, should be easy...


mr e
12 Apr 2002, 06:57
Ok this is my code

$getuser=$DB_site->query("SELECT * FROM user WHERE userid=$bbuserinfo[userid]");

while ($user=$DB_site->fetch_array($getuser)) {
$username=$user[username];
$userlastvisit=$user['lastvisit'];
$newposts="<a href=\"search.php?s=$session[sessionhash]&action=getnew\">View New Posts</a>";
$logout="<smallfont><a href=\"member.php?s=$session[sessionhash]&action=logout\">Log Out</a>";
$markallread="<a href=\"member.php?s=$session[sessionhash]&action=markread\">Mark All Forums Read</a>";
}

eval("\$welcometext .= \"".gettemplate('home_usercp')."\";");

But everytime I call $userlastvisit it says "1018586613" I have tried $user[lastvisit], $user[lastvisitdate], $user['lastvisit'], and $user['lastvisitdate']. I'm probably making this harder than it should be, but help please. :ogre:

Chen
12 Apr 2002, 18:03
First of all, use the query_first() method instead of query() and then fetch_array(), since you are only getting one row of data. :)

Anyway, what you get (that long number) is in Unix Timestamp, and needs to be converted. Use:
$userlastvisit = vbdate("FORMAT", $user['lastvisit']);
FORMAT is the format of the date / time, see the manual entry for date() for more info.

mr e
13 Apr 2002, 03:13
:D Thanx FireFly, that was MUCH easier than what I thought it would be. :bandit:

But about the query_first, if I use that I get an error in db_mysql about a bad argument, so I had to just use query.

Chen
13 Apr 2002, 08:00
If you use query_first() you don't need fetch_array(), because it does that internally.

So instead of:
$getuser=$DB_site->query("SELECT * FROM user WHERE userid=$bbuserinfo[userid]");

while ($user=$DB_site->fetch_array($getuser)) {
$username=$user[username];
$userlastvisit=$user['lastvisit'];
$newposts="<a href=\"search.php?s=$session[sessionhash]&action=getnew\">View New Posts</a>";
$logout="<smallfont><a href=\"member.php?s=$session[sessionhash]&action=logout\">Log Out</a>";
$markallread="<a href=\"member.php?s=$session[sessionhash]&action=markread\">Mark All Forums Read</a>";
}
You just use this:
$user=$DB_site->query_first("SELECT * FROM user WHERE userid=$bbuserinfo[userid]");

$username=$user[username];
$userlastvisit=$user['lastvisit'];
$newposts="<a href=\"search.php?s=$session[sessionhash]&action=getnew\">View New Posts</a>";
$logout="<smallfont><a href=\"member.php?s=$session[sessionhash]&action=logout\">Log Out</a>";
$markallread="<a href=\"member.php?s=$session[sessionhash]&action=markread\">Mark All Forums Read</a>";

mr e
13 Apr 2002, 19:53
Oh ok I got it now, sorry I'm still trying to learn all this coding.

jjj0923
15 Apr 2002, 13:26
Firefly - what a timely post.

Thanks for this information.

While we're on the subject, I was working over the weekend trying something along the same lines.

I have Photopost installed along with vbulletin and I want to pop-up a little javascript message or display a blinking "photo gallery" graphic if there have been new photos posted in the gallery since the users last visit.

The problem I was running into was selecting the photopost db in index.php. It would appear to get selected properly (since servername, username & password) are the same, but then I went to select data from the photpost db, I would get a message returned a string that said something like "Resource ID 27".

I'm fairly confident the select_db was working ok becuase if I did not reselect the Vbulletin db at the end of my code, vb would throw errors.

any ideas????

thanks if advance Firefly!

- jeff

Chen
15 Apr 2002, 13:34
$result = mysql_query_db(...);
$result isn't what you are looking for, you first need to fetch the row:
$row = mysql_fetch_array($result);
And then use $result['fieldName'].

jjj0923
15 Apr 2002, 13:46
cool - thanks!

now where do you want me to send contributions for that condo????

:) - jeff