?
Solved

How do I retrieve a variable from this function?

Posted on 2014-01-31
4
Medium Priority
?
178 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 58

Assisted Solution

by:Gary
Gary earned 400 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 1600 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

Enroll in August's Course of the Month

August's CompTIA IT Fundamentals course includes 19 hours of basic computer principle modules and prepares you for the certification exam. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to count occurrences of each item in an array.
Suggested Courses

762 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