?
Solved

compare variable to array PHP

Posted on 2008-06-09
8
Medium Priority
?
3,005 Views
Last Modified: 2013-12-13
Hello guys
i cannot find answer at the simple question how to compare variable to array.
for example i have some data from database
"one", "two", "three", "four", "five".
and i need to do:
if ($some_var = "two" and "three")
{
execute some code
}
is it possible to comapre $some_var with some array that i retreive from database without looping? just to get what i need...
0
Comment
Question by:nzrubin
[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
  • 5
  • 3
8 Comments
 
LVL 16

Expert Comment

by:DrNikon224
ID: 21748162
You could use the in_array() function to find if the value of $someVar is contained in your $array. See http://www.php.net/in_array(). Also see simple sample below.

If you can show us what you're working with, we can help in a more specific manner. Can you share your code with us? What are you working with in your query results? What exactly are you trying to compare those results to?
<?
$someVar=3;
$array=array(1,2,3,4,5);
 
if(in_array($someVar,$array)){
     echo "$someVar is in the array.";
}//endif
?>

Open in new window

0
 
LVL 4

Author Comment

by:nzrubin
ID: 21748212
thanks for quick reply
i m trying to separate "customers" so they can see only particular projects, but sometimes customers can see the same projects:
for exml:
cust1 can see 1,2,3
cust2 can see 4
cust3 can see 1,3,4.




if ($roww->permission == 'Customer')
{
     $result_cust = mysql_query("SELECT * FROM pr_cust_permiss WHERE username = '$username'");
     while ($row_cust = mysql_fetch_object($result_cust))
      {
        $var = ???????????????????????? some array or something???;
      } // end while
//// select data for customers they can see only particular info which id located in "pr_cust_permiss" table
$result = mysql_query("SELECT * FROM pr_projects WHERE proj_id = '$var' ORDER BY proj_id DESC");
} //end if = customer,  else following
else
{
//// select all data
$result = mysql_query("SELECT * FROM pr_projects ORDER BY proj_id DESC");
}// end else
0
 
LVL 16

Accepted Solution

by:
DrNikon224 earned 200 total points
ID: 21748265
Sounds like you're looking for something like this:
if ($roww->permission == 'Customer')
{
     $result_cust = mysql_query("SELECT * FROM pr_cust_permiss WHERE username = '$username'");
     $var = array(); // create empty array
     while ($row_cust = mysql_fetch_object($result_cust))
      {
        array_push($var,$row_cust['proj_id']); // add each project id to the array
      } // end while
      $projects = implode(',',$var); // convert the completed array to a comma-separated string
//// select data for customers they can see only particular info which id located in "pr_cust_permiss" table
$result = mysql_query("SELECT * FROM pr_projects WHERE proj_id IN ($projects) ORDER BY proj_id DESC"); // use the IN comparison to find values in the DB which match a value in the $projects list
} //end if = customer,  else following
else
{
//// select all data
$result = mysql_query("SELECT * FROM pr_projects ORDER BY proj_id DESC");
}// end else

Open in new window

0
Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

 
LVL 4

Author Comment

by:nzrubin
ID: 21748273
O MAN!!!!!!!!!!!!!! OSANA!!!!!!!!!!!!!!!!!!!!!!

thanks very much!!!!!!!!!!!!
0
 
LVL 16

Expert Comment

by:DrNikon224
ID: 21748280
On second thought, this will combine both queries and save the time of building the array in the while loop. Much more elegant, and quicker.
if ($roww->permission == 'Customer')
{
     $result = mysql_query("SELECT $ FROM pr_projects WHERE proj_id IN (SELECT proj_id FROM pr_cust_permiss WHERE username = '$username') ORDER BY proj_id DESC");
     
     
 
} //end if = customer,  else following
else
{
//// select all data
$result = mysql_query("SELECT * FROM pr_projects ORDER BY proj_id DESC");
}// end else

Open in new window

0
 
LVL 4

Author Closing Comment

by:nzrubin
ID: 31465615
thanks very much!
0
 
LVL 4

Author Comment

by:nzrubin
ID: 21748297
thats great! last one !!!
0
 
LVL 4

Author Comment

by:nzrubin
ID: 21748307
it works work!!!!!!!!!!!!!
0

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

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

There are times when I have encountered the need to decompress a response from a PHP request. This is how it's done, but you must have control of the request and you can set the Accept-Encoding header.
Originally, this post was published on Monitis Blog, you can check it here . In business circles, we sometimes hear that today is the “age of the customer.” And so it is. Thanks to the enormous advances over the past few years in consumer techno…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses

777 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