Solved

How do I retrieve a variable from this function?

Posted on 2014-01-31
4
171 Views
Last Modified: 2014-01-31
Here's the code:

if (!function_exists('ptl_approlepermissionlist_byapppermissionrefuser')) {
	function ptl_approlepermissionlist_byapppermissionrefuser($apprefname,$userid) {
		global $mdb,$_SESSION;
		
		$data = array();
		$sql_data = "exec ptl_AppRolePermissionList_byAppPermissionRefUser '$apprefname', $userid";
		if ($_SESSION["portaladmin"] == 1 && $_SESSION["showsql"] != "no")
			echo display_detail("functions_db.php",$sql_data);
		$result_data = odbc_exec($mdb, $sql_data);
		
		$count = 0;
		while (odbc_fetch_row($result_data))
			{
			$count++;
			$data[$count]["appid"] = odbc_result($result_data, "appid");
			$data[$count]["apprefname"] = htmlspecialchars(odbc_result($result_data, "apprefname"), ENT_QUOTES);
			$data[$count]["permissionid"] = odbc_result($result_data, "permissionid");
			$data[$count]["permissionname"] = htmlspecialchars(odbc_result($result_data, "permissionname"), ENT_QUOTES);
			$data[$count]["permissionrefname"] = htmlspecialchars(odbc_result($result_data, "permissionrefname"), ENT_QUOTES);
			$data[$count]["roleid"] = odbc_result($result_data, "roleid");
			$data[$count]["rolename"] = htmlspecialchars(odbc_result($result_data, "rolename"), ENT_QUOTES);
			$data[$count]["rolerefname"] = htmlspecialchars(odbc_result($result_data, "rolerefname"), ENT_QUOTES);
			$data[$data[$count]["permissionrefname"]]["allow"] = true;
			}
		$data["count"] = $count;
		return $data;
		}
	}

Open in new window


I'm more accustomed to a procedural context, hence my being lost. How do I write an if statement that determines whether or not if$data[$count]["rolename"] -"developer"?

Thanks for you help!
0
Comment
Question by:brucegust
  • 2
4 Comments
 
LVL 58

Assisted Solution

by:Gary
Gary earned 100 total points
ID: 39824504
Doesn't make sense - why are you declaring a function only if another function exists.
You just have the function to start with - it's not doing any harm if the other function doesn't exist.
Remove
$data["count"] = $count;

However you call the function the values will be in that variable not in $data
0
 
LVL 43

Accepted Solution

by:
Chris Stanyon earned 400 total points
ID: 39825036
You assign the result of the function to a variable:

$yourData = ptl_approlepermissionlist_byapppermissionrefuser($apprefname,$userid);

Open in new window

Now $yourData will be an array, containing the output from your function, and you can access the elements like so:

echo $yourData['count'];

Your array contains an array, so to loop through that, you'd use something like this:

for ($i=1; $i <= $yourData['count']; $i++) {

   //examine each element of the array
   var_dump($yourData[$i]);

   //output a specific element of the array
   var_dump($yourData[$i]['rolename'];

   //check the value:
   if ($yourData[$i]['rolename'] == 'developer'):
      echo "We have a developer";
   endif;

}

Open in new window

0
 

Author Comment

by:brucegust
ID: 39825403
Cathal!

Thanks for taking the time to weigh in. You are right, but there was some more "stuff" behind the scenes that I needed to understand in order for any of this to make sense.

BTW: This isn't my code. I'm a contract guy and I'm working right now just to get my head wrapped around what's current working / in place.

Here's what I learned:

The info I was looking for is not in the aforementioned function. Rather, it was in another stored procedure and instead of a situation where I was looking for something along the lines of $data[1]=="update" to determine if the user had the necessary permissions to update things, it was instead a two dimensional array and the resulting if statement looked like this:  if  ($appuserpermission["update"] == "developer").

Uncharted waters, major learning curve, but once I got my arms around it, I let out a big "Yes!" that un-nerved the entire floor that I'm working on.

There you have it!
0
 

Author Comment

by:brucegust
ID: 39825405
Chris, I didn't see you jumping in until after I had posted my comment. Thanks for helping out!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Deprecated and Headed for the Dustbin By now, you have probably heard that some PHP features, while convenient, can also cause PHP security problems.  This article discusses one of those, called register_globals.  It is a thing you do not want.  …
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
The viewer will learn how to count occurrences of each item in an array.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now