954,585 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Cannot retrieve data with function

Hi,

I'm not very good at PHP so sorry if this is stupid but I have a database with a table called item. I want to retrieve certain items based on specific criteria so I have written this function:

function get_item ($item_no, $supp_id, $cat) {
	   	global $connection;
	   	if ($item_no && !$supp_id && !$cat){
	   		$query = "SELECT *
	   			      FROM item
	   			      WHERE item_id = $item_no";
	   	}
	   	else if (!$item_no && $supp_id && $cat) {
	   		$query = "SELECT *
	   			      FROM item
	   			      WHERE supp_id = $supp_id and cat_id = $cat";
	   	}
	   	else if (!$item_no && !$supp_id && $cat) {
	   		$query = "SELECT *
	   			      FROM item
	   			      WHERE category = $cat";
	   	}
	   	else if (!$item_no && $supp_id && !$cat) {
	   		$query = "SELECT *
	   			      FROM item
	   			      WHERE supplier = $supp_id";
	   	}
	   	$item_set =  mysql_query($query, $connection);
	   	confirm_query($item_set);
	   	return $item_set;
  }


I have a php page with this:

$item_no = NULL;
  $supp_id = 4;
  $cat = 3;
  $item_set = get_item($item_no, $supp_id, $cat);
  while ($row = mysql_fetch_array($item_set)) {
  echo "<h1>".$row['item_name']."</h1> ".$row['description']."  £".$row['price']."<img src='".$row['image']."'></p>";}


All I get is a blank page. No errors but no data either.

Can anyone help, please?

Thanks in advance.

Roybut
Light Poster
26 posts since Oct 2008
Reputation Points: 10
Solved Threads: 0
 

Hi Roybut,

First of all let me say there are no stupid questions, only those too stupid to ask. :)

Ok, now I have thought of a couple of things that could be happening here. First of all, are the two code snippets in separate php files? If so, have you included the first file in the second by a call to include or require? Also, is the get_item function a function inside a class? If so, it needs to be called by classname::get_item(...); One way to check that your query is being created correctly is to put an echo statement immediately before the call to mysql_query, like so:

echo $query;
item_set = ... ;

This will tell you if your query is correct or not, just don't forget to remove the line later after you have finished debugging.

Anyway, this might be a start to helping you work out what is going on. Let us know if this hasn't fixed it.

Cheers,
d

darkagn
Veteran Poster
1,197 posts since Aug 2007
Reputation Points: 404
Solved Threads: 200
 

Also, double check the spelling of your column names in the item table. The calls to $row['item_name'] etc must match the column names.

darkagn
Veteran Poster
1,197 posts since Aug 2007
Reputation Points: 404
Solved Threads: 200
 

Hi D,

Thanks for the help. I did have a couple of field names wrong (late night working:zzz: ) and have changed them. I still get nothing displayed. I tried echoing $item_set and it simply prints "Resource id #6" on the page.

I do have the function in a separate file but i have included the functions file and called it. Other functions work so it is definitely not that.

I don't know how to create a class so I'm sure it is not that, either.

I have checked the function again to make sure nothing seems out of place and it looks fine.

Thanks,

Roy

Roybut
Light Poster
26 posts since Oct 2008
Reputation Points: 10
Solved Threads: 0
 

UPDATE:

I have indeed been stupid! I found that I was searching for things that did not exist. I was looking in category and supplier but not all suppliers have items in all categories. I think it was just bad luck that I chose to test the function with mis-matching values. Little sleep and little PHP knowledge makes for big headache!

Thanks for your input, D.

Roybut
Light Poster
26 posts since Oct 2008
Reputation Points: 10
Solved Threads: 0
 

Ah the classic bane of many a programmer, lack of sleep. I find that a good cure for this is caffeine and lots of it :P Anyway, glad you found your problem. Happy programming!

darkagn
Veteran Poster
1,197 posts since Aug 2007
Reputation Points: 404
Solved Threads: 200
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You