Resource id #4...

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
orbdrums
Forum Commoner
Posts: 82
Joined: Wed Sep 14, 2011 11:42 pm

Resource id #4...

Post by orbdrums »

Hi all,
The following code:

Code: Select all

        
$curr_mbr = $_SESSION['SESS_MEMBER_ID'];
$query_user = "SELECT * FROM `Users`.`members` WHERE `member_id` = $curr_mbr";
echo $query_user,"<br />";
$result = mysql_query($query_user);
echo $result;
returns this:

SELECT * FROM `Users`.`members` WHERE `member_id` = 5
Resource id #4

I have no idea what I'm doing wrong because I have this code in another php script file and it works fine (although I'm using a different table).
As always, thanks for the help.
User avatar
twinedev
Forum Regular
Posts: 984
Joined: Tue Sep 28, 2010 11:41 am
Location: Columbus, Ohio

Re: Resource id #4...

Post by twinedev »

Well, first, what are you expecting? From the code you gave, the output looks correct.

-Greg
orbdrums
Forum Commoner
Posts: 82
Joined: Wed Sep 14, 2011 11:42 pm

Re: Resource id #4...

Post by orbdrums »

Hey Greg,
I'm trying to INSERT a filename in a field called pers_img in a table called members but the php code fails at this point. The query result is Resource id #4 which I'm sure you could see. Maybe more of the code will help.

Code: Select all

$db = mysql_select_db(Users);
if(!$db) {
die("Unable to select database");
}

$curr_mbr = $_SESSION['SESS_MEMBER_ID'];
$query_user = "SELECT * FROM members WHERE member_id = $curr_mbr";
echo $query_user,"<br />";
$result = mysql_query($query_user);
echo $result;

$row = mysql_fetch_assoc($result);

if (!$result) 
{
$message  = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}
if(mysql_num_rows($row) == 1) 
{
$query_in = "INSERT INTO Users.members(pers_img) VALUES('$pers_img_up')";
@mysql_query($query_in);
session_write_close();
exit();
}else {
Write failed

header("Write failed");
exit();
}
I've been looking at this code for about the last 2 weeks so I'm going cross-eyed. Thanks for any help you may be able to provide.
Clark
User avatar
twinedev
Forum Regular
Posts: 984
Joined: Tue Sep 28, 2010 11:41 am
Location: Columbus, Ohio

Re: Resource id #4...

Post by twinedev »

This is the line you did wrong:

Code: Select all

if(mysql_num_rows($row) == 1) 
$row will (assuming there were results) contain the first row of results from the query.

mysql_num_rows() expects to be passed a resource of a DB query, in your case $result

Here is how I would have written it:

Code: Select all

$db = mysql_select_db('Users')
	or die('Unable to select database');

$SQL = 'SELECT * FROM `members` WHERE `member_id` = '.(int)$_SESSION['SESS_MEMBER_ID'];

$rsMember = mysql_query($SQL)
	or die('Invalid Query: '.mysql_error()."\nQeury: ".$SQL); // Leave in only for debugging

if ($rsMember && mysql_num_rows($rsMember)>0) {
	$aryMember = mysql_fetch_assoc($rsMember);
	mysql_free_result($rsMember);

	$SQL = 'INSERT INTO `members` (`pers_img`) VALUES ("'.mysql_real_escape_string($pers_img_up).'")';
	mysql_query($SQL)
		or die('Invalid Query: '.mysql_error()."\nQeury: ".$SQL); // Leave in only for debugging

	session_write_close();
	
}
else {
	// There were no results for the first query
	echo "FAIL!";
}

// As both paths of the if statement would ended in an exit,
// This should be the end of the file, so need to expicitly call it
orbdrums
Forum Commoner
Posts: 82
Joined: Wed Sep 14, 2011 11:42 pm

Re: Resource id #4...

Post by orbdrums »

Thanks Greg! All is fine now.
Post Reply