Need help with if(isset($variable))

Hey guys, I’m trying to set some variables to exclude people from an array.

So,
[php] if(isset($_SESSION[‘person1’])){
$_SESSION[‘person2’] = $person;
}else{
$_SESSION[‘person1’] = $person;
}

if(isset($_SESSION['person1'] && $_SESSION['person2'])){
	$_SESSION['person3'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'])){
	$_SESSION['person4'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'])){
	$_SESSION['person4'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'] && $_SESSION['person4'])){
	$_SESSION['person5'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'] && $_SESSION['person4'] && $_SESSION['person5'])){
	$_SESSION['person6'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'] && $_SESSION['person4'] && $_SESSION['person5'] && $_SESSION['person56'])){
	$_SESSION['person7'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'] && $_SESSION['person4'] && $_SESSION['person5'] && $_SESSION['person6'] && $_SESSION['person7'])){
	$_SESSION['person8'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'] && $_SESSION['person4'] && $_SESSION['person5'] && $_SESSION['person6'] && $_SESSION['person7'] && $_SESSION['person8'])){
	$_SESSION['person9'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'] && $_SESSION['person4'] && $_SESSION['person5'] && $_SESSION['person6'] && $_SESSION['person7'] && $_SESSION['person8'] && $_SESSION['person9'])){
	$_SESSION['person10'] = $person;
		}
if(isset($_SESSION['person1'] && $_SESSION['person2'] && $_SESSION['person3'] && $_SESSION['person4'] && $_SESSION['person5'] && $_SESSION['person6'] && $_SESSION['person7'] && $_SESSION['person8'] && $_SESSION['person9'] && $_SESSION['person10'])){
	$_SESSION['person11'] = $person;
		}[/php]

So I want it to check person 1 then 2 then 3 then 4 and set them in order.
So if #1 isnt set it sets #2, if #1 and #2 is set it sets #3, it #1 and #2 and #3 is set it sets #4 etc… etc…

Is there any easier way to do this? or have I got it correct?

Damn, can’t edit it anymore. Here is updated code.

[php] if(isset($_SESSION[‘person1’])){
if(isset($_SESSION[‘person2’])){
}else{
$_SESSION[‘person2’] = $person;
}
}else{
$_SESSION[‘person1’] = $person;
}

if(isset($_SESSION['person1']) && isset($_SESSION['person2'])){
	$_SESSION['person3'] = $person;
	$this->getRandomPerson($boardpoint,$task,$n);
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3'])){
	$_SESSION['person4'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4'])){
	$_SESSION['person5'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5'])){
	$_SESSION['person6'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6'])){
	$_SESSION['person7'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7'])){
	$_SESSION['person8'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7']) && isset($_SESSION['person8'])){
	$_SESSION['person9'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7']) && isset($_SESSION['person8']) && isset($_SESSION['person9'])){
	$_SESSION['person10'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7']) && isset($_SESSION['person8']) && isset($_SESSION['person9']) && isset($_SESSION['person10'])){
	$_SESSION['person11'] = $person;
		}[/php]

Because what I’m trying to do is,
Build an array with people.
Select a random person.
Check persons suitability, if fail - Set $_SESSION[‘person’]
Build an array with people.
Remove any $_SESSION[‘person’]
Rebuild array.
Select a random person.
Check persons suitability, if true - add to database.
I’m really stuck…

Heres everything…
[php]// Call Function

<?php $boardpoint = 1; $task = 'fastpost'; $SZUserMgnt->setFastpost($boardpoint,$task); ?>[/php]

[php]// Function called
function setFastpost($boardpoint,$task) {
for ($n=1; $n< 4; $n++) {
$this->getRandomPerson($boardpoint,$task,$n);
}
return true;
}[/php]

[php] function getRandomPerson($boardpoint,$task,$n) {
if($boardpoint == 8){
$sql_text = “SELECT id, name, $task, board, hours FROM “.$this->TABLES[‘staff’].” WHERE $task = ‘yes’ AND board = ‘yes’ AND hours = ‘part’”;
}else{
$sql_text = “SELECT id, name, $task, board FROM “.$this->TABLES[‘staff’].” WHERE $task = ‘yes’ AND board = ‘yes’”;
}
$data = $this->sql->Select($sql_text);
$i=0;
$len = count($data);
$random_number = rand(1,$len);
$array = array(0 => “holder”);
for ($i=0; $i< $len; $i++) {
array_push($array, $data[$i][‘name’]);
}
$person = $array[$random_number];

$this->addPersonToBackup($boardpoint,$person,$task,$n);
return true;

}[/php]

[php] function addPersonToBackup($boardpoint,$person,$task,$n) {
$date = date(“dmY”);
$sql_text = “SELECT id, date FROM “.$this->TABLES[‘backup’].” WHERE date = ‘$date’”;
$data = $this->sql->Select($sql_text);
$i=0;
$len = count($data);
if ($task == ‘fastpost’ || $task == ‘vans’){
$holder = $task.$n;
}else{
$holder = $task.$boardpoint;
}

if (isset($data[$i]['date'])) {
	$this->sql->Update("UPDATE ".$this->TABLES['backup']." SET $holder = '".$person."' WHERE date = '$date'");
}else{
	$this->sql->Insert("INSERT INTO ".$this->TABLES['backup']." ($holder, date, unixtimestamp) VALUES ('".$person."','$date', NOW()+1)");

}

if ($holder == “fastpost1” || $holder == “fastpost2” || $holder == “fastpost3”){
$this->fastpostChecker($boardpoint,$person,$task,$n,$holder,$check=NULL,$id=NULL);
}

return true;

}[/php]

[php] function fastpostChecker($boardpoint,$person,$task,$n,$holder,$check,$id){
$date = date(“dmY”);
$sql_text = “SELECT * FROM “.$this->TABLES[‘backup’].” WHERE date = ‘$date’”;

  $data = $this->sql->Select($sql_text);
  $len = count($data);
  $i=0;
  $d=1;
  $dayscheck = $this->getDaySetting();
  
  for ($d=1; $d<= $dayscheck; $d++) { // Start for
  $today = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
  $difference = $d;
  $subtract = $today - (86400 * $difference);
  $yesterday = date("dmY", $subtract);
  
  $sql_text2 = "SELECT * FROM ".$this->TABLES['backup']." WHERE date = '$yesterday'";
  $data2 = $this->sql->Select($sql_text2);


	if(isset($data2[$i]['fastpost1'])){
	if ($data2[$i]['fastpost1'] == $person){
		if(isset($check)){ $_SESSION['fastpost1'] = ''.$person.' has done fastpost yesterday.'; return false; }else{ $this->arraychange($boardpoint,$task,$n,$person); $this->getRandomPerson($boardpoint,$task,$n); }
	}
}
if(isset($data2[$i]['fastpost2'])){
	if ($data2[$i]['fastpost2'] == $person){
		if(isset($check)){ $_SESSION['fastpost2'] = ''.$person.' has done fastpost yesterday.'; return false; }else{ $this->arraychange($boardpoint,$task,$n,$person); $this->getRandomPerson($boardpoint,$task,$n); }
	}
}
if(isset($data2[$i]['fastpost3'])){
	if ($data2[$i]['fastpost3'] == $person){
		if(isset($check)){ $_SESSION['fastpost3'] = ''.$person.' has done fastpost yesterday.'; return false; }else{ $this->arraychange($boardpoint,$task,$n,$person); $this->getRandomPerson($boardpoint,$task,$n); }
	}
}
  } // End for

if(isset($check) && $boardpoint == 2){ $holder = 'fastpost2';}
  if($holder == 'fastpost2'){
	  	  if($data[$i]['fastpost1'] == $person) {
			  if(isset($check)){ $_SESSION['fastpost1'] = ''.$person.' is assigned to do fastpost already.'; return false; }else{ $this->arraychange($boardpoint,$task,$n,$person); $this->getRandomPerson($boardpoint,$task,$n); }
		  }
  }
  
if(isset($check) && $boardpoint == 3){ $holder = 'fastpost3';} 
  if($holder == 'fastpost3'){
	  	  if($data[$i]['fastpost1'] == $person || $data[$i]['fastpost2'] == $person) {
			if(isset($check)){ $_SESSION['fastpost1'] = ''.$person.' is assigned to do fastpost already.'; return false; }else{ $this->arraychange($boardpoint,$task,$n,$person); $this->getRandomPerson($boardpoint,$task,$n); }
		  }
  }
  
  if($data[$i]['tipper5'] == $person || $data[$i]['tipper6'] == $person || $data[$i]['staging5'] == $person) {
	if(isset($check)){ $_SESSION['fastpost1'] = ''.$person.' is assigned to do another job already.'; return false; }else{ $this->arraychange($boardpoint,$task,$n,$person); $this->getRandomPerson($boardpoint,$task,$n); }
		  }else{
	return true;

}
}
[/php]

[php]function arraychange($boardpoint,$task,$n,$person){
$sql_text = “SELECT * FROM “.$this->TABLES[‘staff’].” WHERE board = ‘yes’ AND $task = ‘yes’”;
$data = $this->sql->Select($sql_text);
$i=0;
$len = count($data);

if(isset($_SESSION['person1'])){
	if(isset($_SESSION['person2'])){
		}else{
			$_SESSION['person2'] = $person;
		}
		}else{
	$_SESSION['person1'] = $person;
		}

if(isset($_SESSION['person1']) && isset($_SESSION['person2'])){
	$_SESSION['person3'] = $person;
	$this->getRandomPerson($boardpoint,$task,$n);
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3'])){
	$_SESSION['person4'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4'])){
	$_SESSION['person5'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5'])){
	$_SESSION['person6'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6'])){
	$_SESSION['person7'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7'])){
	$_SESSION['person8'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7']) && isset($_SESSION['person8'])){
	$_SESSION['person9'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7']) && isset($_SESSION['person8']) && isset($_SESSION['person9'])){
	$_SESSION['person10'] = $person;
		}
if(isset($_SESSION['person1']) && isset($_SESSION['person2']) && isset($_SESSION['person3']) && isset($_SESSION['person4']) && isset($_SESSION['person5']) && isset($_SESSION['person6']) && isset($_SESSION['person7']) && isset($_SESSION['person8']) && isset($_SESSION['person9']) && isset($_SESSION['person10'])){
	$_SESSION['person11'] = $person;
		}

return true;
}[/php]

Thankyou for those who viewed my problem. But I’ve sorted it ;D

Instead of using sessions, I used a temporary field in the database.
Set it to yes if person is selected.
Build an array with people who are ‘yes’
Select a random person.
Check persons suitability, if fail - temporary field in the database to ‘no’.
Rinse repeat until someone is found or, if($len == 0){ ERROR

Much easier.
Then with each job processed it resets the temporary field in the database if person is selected.

WOOOO!

Sponsor our Newsletter | Privacy Policy | Terms of Service