Nisfan
Nisfan

Reputation: 149

How can I get $_GET values to a variable

In my page, there are multiple $_GET values. ie

if(isset($_GET["projects"]))
{ .....    }
else if(isset($_GET["research"]))
{ ...... }
else if(isset($_GET["publication"]))
{ ..... }

...upto 10 elseif's

Can I shorten this? Can I get these values {projects,research, publication,..} in a variable.?

Upvotes: 0

Views: 3542

Answers (6)

Havenard
Havenard

Reputation: 27914

Ok so I guess I figured out what you want from your comments. Lets see.

$types = array('projects', 'research', 'publication'); // add as many as you want
$valid = array_intersect_key($_GET, array_flip($types));

if (count($valid) > 1)
    die "More than one category is set, this is invalid.";

if (!$valid)
    die "No category was set, you must choose one.";

foreach ($valid as $type => $value) // just to split this one element array key/value into distinct variables
{
    $value = mysql_real_escape_string($value); // assuming you are using mysql_*
    $sql = "SELECT * FROM table WHERE $type = '$value'";
}

...

Upvotes: 2

Utkarsh Dixit
Utkarsh Dixit

Reputation: 4275

I didn't completely understood what you are saying but looks like that you are trying to execute something when all $_GET is true. If so then use the code below

if(isset($_GET["projects"]) && isset($_GET["research"]) && isset($_GET["publication"]) )
{ .....    }

Hope this helps you

Upvotes: 0

user3915050
user3915050

Reputation:

if the intent is to check if values on a form have been answered/filled out you could use

if(isset($_GET['project'] || ... || isset($_GET['publication'])
{
 // Insert Code Here
}
else
{
 // Insert Code Here
}

The above code is assuming the fields are not text fields or textareas if those are the types of inputs then instead of

if(isset($_GET['project']))

use

if($_GET['project'] != "")

Upvotes: 0

TeeDeJee
TeeDeJee

Reputation: 3741

$projects = $_GET["projects"];

Or just use directly from $_GET, this is an associative array with all the values.

foreach ($_GET as $key => $value){
    if(!empty($value)){
        $type = $key; //if you expect a single item
        $type[] = $key; //if you expect multiple items
    }
}

Upvotes: 0

deceze
deceze

Reputation: 522480

I'm guessing you're expecting a single value in $_GET, like ?projects=foo or ?research=bar. In that case:

$type  = key($_GET);
$value = $_GET[$type];

echo "$type = $value";

Upvotes: 0

Rakesh kumar
Rakesh kumar

Reputation: 135

Yes, you can assign these in a variable -

if(isset($_GET["projects"]))
{
    $value = $_GET['projects'];
}
else if(isset($_GET["research"]))
{
    $value = $_GET['research'];
}
else if(isset($_GET["publication"]))
{
    $value = $_GET['publication'];
}
echo $value;

Upvotes: 0

Related Questions