File "test_CB03.php"

Full Path: /home/analogde/www/Diabete/test_CB03.php
File size: 12.37 KB
MIME-type: text/x-php
Charset: utf-8

<?php

		session_start ();
		include('database.php');	
		include('fonctions.php');	
		include('generation_timing.php');

		error_reporting(0);
		
		DB_connexion(); 

		$annee = 2022;
		$mois = "juin";
		
		find($annee,$mois,"courte");
		

		$record = array (
							array("aaa","bbb"),
							array("BMW"),
							array("nnn","nnn","ppp"),
							array("un","deux","trois","trois" ),
							array("un","deux","trois","trois","quatre" ),
							array("un","deux","trois","trois","quatre", "lule" ),
							array("un","deux","trois","trois","quatre", "lule", "plouf" ),
							array("un","deux","trois","trois","quatre", "lule", "one", "two" )

					 );
					 
		
		$all_client_month = array();		
		
		/* concatenation de tous les clients qui ont fait une réservation dans le mois */	
		for( $i=0; $i < count($record) ; $i++)
		{
			$all_client_day = array();
			$all_client_day = $record[$i];
			for( $j=0; $j < count($all_client_day) ; $j++)
			{
				$all_client_month[] = $all_client_day[$j];
			}
		}
		
		echo "<BR>";
		echo "<pre>";
		print_r($all_client_month);
		echo "<BR>";
		echo "<pre>";
		
		/* supprimer les doublons */
		$all_client_month_no_doublons = array_unique($all_client_month);
		echo "<pre>";
		print_r($all_client_month_no_doublons);
		echo "</pre>";
		
		/* création des objets */
		foreach ($all_client_month_no_doublons as $valeur) 
		{
			$arrayObjClient[] = new Personne($valeur);
		}
		
		echo "<BR>";
		echo "<pre>";
		echo " ********* OBJECTS ***************";
		echo "<BR>";
		print_r($arrayObjClient);
		echo "</pre>";
		echo " ************************";
		echo "<BR>";
		
		for( $k=0; $k < count($arrayObjClient) ; $k++)
		{
			echo $arrayObjClient[$k]->getNom() ."\n";
		}
		
		$double = array();
		
		for( $i=0; $i < count($record) ; $i++)
		{
				$arrayCurrentRecord = array();
				$arrayCurrentRecord = $record[$i];
				echo "<pre>";
				print_r($arrayCurrentRecord);
				echo "</pre>";
				
				$flag = false;
				
				// 0 1 2 3  < 4 
				for( $j=0; $j < count($arrayCurrentRecord) ; $j++)
				{
					if( count($arrayCurrentRecord) == 1  )
					{
						echo(" ------------ "  .$arrayCurrentRecord[$j]  ."\n");
					}
				
					if( $j <= count($arrayCurrentRecord) - 2 ) // 4 - 1
					{
							//  0 1
							//  1 2
							//  2 3
							//echo(" Compare "  .$arrayCurrentRecord[$j] ."  " .$arrayCurrentRecord[$j+1] ."\n");

							$mess = " Compare "  .$arrayCurrentRecord[$j] ."  " .$arrayCurrentRecord[$j+1];
							
							if($arrayCurrentRecord[$j] == $arrayCurrentRecord[$j+1])
							{
								echo  $mess  ." -->  Doublon " .$arrayCurrentRecord[$j] ."\n";
								echo " Traitement " ."\n";
								$flag = true;
								
								$double[] = $arrayCurrentRecord[$j];
								
								for( $k=0; $k < count($arrayObjClient) ; $k++)
								{
									$mess = $arrayObjClient[$k]->getNom() ." ? " .$arrayCurrentRecord[$j];
								
									if( $arrayObjClient[$k]->getNom() == $arrayCurrentRecord[$j] )
									{
										echo $mess ." yes ";
										
										if( $arrayObjClient[$k]->getDoublePremiere() == 0)
										{
											$arrayObjClient[$k]->setDoublePremiere(1);
											echo " Premier \n";
										}
										else //if( $arrayObjClient[$k]->getDoublePremiere() == 1)
										{
											$arrayObjClient[$k]->setDoubleAutre($arrayObjClient[$k]->getDoubleAutre() + 1);
											echo " Multiple \n";
											//$arrayObjClient[$k]->incrementDoubleAutre();
										}
									}
									else
									{
										echo $mess ."\n";
									}
								}
							}
							else
							{
									echo $mess ."\n";
							}
					}
				}
				
				if( $flag == false)
				{
					$double[] = "none";
				}
				echo("-----------------------" . "\n");
		}
		
		
		echo "<BR>";
		echo "<pre>";
		echo " ********* DOUBLE ***************";
		echo "<BR>";
		print_r($double);
		echo "</pre>";
		echo " ************************";
		echo "<BR>";
		
		/****/
		for( $i=0; $i < count($double) ; $i++)
		{
			if(  $double[$i] != "none" )  
			{
					$arrayCurrentRecord = array();
					$arrayCurrentRecord = $record[$i];
			
					$loop = true;
			
					while ($loop) 
					{
							if (($pos = array_search($double[$i] , $arrayCurrentRecord)) !== false) 
							{
								unset($arrayCurrentRecord[$pos]);
							}
							else
							{
								$loop = false; 
								$rebuild[] = $arrayCurrentRecord;
							}
					}
			}
			else
			{
				$rebuild[] = $record[$i]; //$arrayCurrentRecord;
				//print_r($record[$i]);
			}
		}
		
		echo "<BR>";
		echo "<pre>";
		echo " ********* REBUILD ***************";
		echo "<BR>";
		print_r($rebuild);
		echo "</pre>";
		echo " ************************";
		echo "<BR>";
			
		$tabIndexed = array();
		
		// probléme : ne se comporte pas comme prévu ????
		////$tabIndexed = array_values($rebuild);
		
		
		for( $i=0; $i < count($rebuild) ; $i++)
		{
			$chaine = implode(" ", $rebuild[$i]);
			echo "String " .$chaine ."\n";
			
			$pieces = explode(" ", $chaine);
			$tabIndexed[] = $pieces;
		}
		
	
		echo "<BR>";
		echo "<pre>";
		echo " ********* Re-index ***************";
		echo "<BR>";
		print_r($tabIndexed);
		echo "</pre>";
		echo " ************************";
		echo "<BR>";
	
		
		/*for( $i=0; $i < count($rebuild) ; $i++)
		{
			$tmp = array();
		
			for( $j=0; $j < count($rebuild[$i]) ; $j++)
			{
				$tmp[] = $rebuild[$i][$j];
			}
		
			$tabIndexed[] = $tmp;
		}
		
		print_r($tabIndexed);*/
		
		for( $i=0; $i < count($tabIndexed) ; $i++)
		{
			$arrayCurrentRecord = array();
			$arrayCurrentRecord = $tabIndexed[$i];
			
			//print_r($reIndex[$i]);
			
			for( $j=0; $j < count($arrayCurrentRecord) ; $j++)
			{
				echo $rebuild[$i][$j];
			
					for( $k=0; $k < count($arrayObjClient) ; $k++)
					{
						if( $arrayObjClient[$k]->getNom() == $arrayCurrentRecord[$j] )
						{
							if( $arrayObjClient[$k]->getSimplePremiere() == 0)
							{
								$arrayObjClient[$k]->setSimplePremiere(1);
								echo " Premier \n";
							}
							else //if( $arrayObjClient[$k]->getDoublePremiere() == 1)
							{
								$arrayObjClient[$k]->setSimpleAutre($arrayObjClient[$k]->getSimpleAutre() + 1);
								echo " Multiple \n";
								//$arrayObjClient[$k]->incrementDoubleAutre();
							}
						}
					}	
			}
		}
	
		
		echo "<BR>";
		echo "<pre>";
		echo " ********* OBJECTS ***************";
		echo "<BR>";
		print_r($arrayObjClient);
		echo "</pre>";
		echo " ************************";
		echo "<BR>";

		
		echo " ------------------------------------ \n";
		echo " ------------------------------------ \n";
		echo " ------------------------------------ \n";
		echo " ------------------------------------ \n";
		
/*		
		$rebuild = array();
		
		
		
		/* Traitement des reservations simple */
/*		for( $i=0; $i < count($record) ; $i++)
		{
				$arrayCurrentRecord = array();
				$arrayCurrentRecord = $record[$i];
				
				$vals = array_count_values($arrayCurrentRecord);
				
				echo " vvvvvvvvvvvvvvvvvvvvvvvvvvvvv " ."\n";
				
				echo 'No. of NON Duplicate Items: '.count($vals).'<br><br>';
				print_r($vals);
				
				$tmp = array();
				
				$flag = false;
				
				foreach($vals as $key => $value) 
				{
					//echo "key=" . $key . ", Valeur=" . $value;
					//echo "<br>";
					
					if( $value == 1 )
					{
						//$rebuild[] = $key;aaaa
						$tmp[] = $key;
						$flag = true;
						echo " --> " .$key ."\n";
					}
					
					if( $value == 11)
					{
						echo "JOB" ."\n";
					
						$loop = true;
					
						while ($loop) 
						{
							if (($pos = array_search($key, $arrayCurrentRecord)) !== false) 
							{
								unset($arrayCurrentRecord[$pos]);
							}
							else
							{
								$loop = false; 
								$rebuild[] = $arrayCurrentRecord;
							}
						}
					}
					
				}
				//if( $flag == true )
				if( ! empty($tmp) )
				{
					//$rebuild[] = $tmp;
					//echo "<BR>";
					//print_r($tmp);
					//echo "</pre>";
					//echo "\n";
				}
				
		}		
		
		
		echo "<BR>";
		echo "<pre>";
		echo " ********* OBJECTS ***************";
		echo "<BR>";
		print_r($rebuild);
		echo "</pre>";
		echo " ************************";
		echo "<BR>";
		
		/*$tab = array('world','hello','good','hello');
		$element = 'hello';
		unset($tab[array_search($element, $tab)]);
		echo "<BR>";
		print_r($tab);
		echo "</pre>";*/
		
		// php remove 2 consecutive word in string
		// https://www.geeksforgeeks.org/delete-consecutive-words-sequence/
		
		//if (in_array("100", $marks))
		
		
?>
<?php

class Personne
{
	private $nom;
	private $simple_premiere = 0;
	private $simple_autre = 0;
	private $double_premiere = 0;
	private $double_autre = 0;

	public function __construct($nom) 
	{ 
		$this->nom = $nom;
	}
	
	public function setNom($val)
	{
		$this->nom = $val;
	}
	
	public function getNom()
	{
		return $this->nom;
	}
	
	/****/
	public function setSimplePremiere($val)
	{
		$this->simple_premiere = $val;
	}
	
	public function getSimplePremiere()
	{
		return $this->simple_premiere;
	}
	
	/****/
	public function setSimpleAutre($val)
	{
		$this->simple_autre = $val;
	}
	
	public function getSimpleAutre()
	{
		return $this->simple_autre;
	}
	
	public function incrementSimpleAutre()
	{
		$simple_autre++;
	}

	/****/
	public function setDoublePremiere($val)
	{
		$this->double_premiere = $val;
	}
	
	public function getDoublePremiere()
	{
		return $this->double_premiere;
	}
	
	/*****/
	public function setDoubleAutre($val)
	{
		$this->double_autre = $val;
	}
	
	public function getDoubleAutre()
	{
		return $this->double_autre;
	}
	
	public function incrementDoubleAutre()
	{
		$double_autre++;
	}
	/****/
	
}

?>

<?php

function find($annee,$mois,$formule)
{
			$connexion = DB();  
	 
			//$table = "reservation_dev" .$annee;
			$table = "reservation2022_v3"; //$_SESSION['table_reservation'];

			$sql = "SELECT * FROM " .$table ." WHERE annee ='$annee' and mode = 'actif' and formule = '$formule' and mois = '$mois'  ";
			echo $sql;
			echo "<br>";	
	 
			//$sql="SELECT * FROM " .$mois_actif;	
			mysqli_query($connexion, "SET NAMES 'utf8'");	
			$query = mysqli_query($connexion, $sql );
		
			if(!$query)	
			{	die('Impossible d\'exécuter la requête :' . mysql_error());	
			}
			
			$nbre_enregistrements = mysqli_num_rows($query);
			// scanner toutes les dates dans le mois
			
			echo "Total " .$nbre_enregistrements;
			echo "<br>";	
			
			$cpt = 0;
			
			$tab_client = array();
			
			$record = array();
			
			while ($datas = mysqli_fetch_assoc ($query))
			{
				$tab_client_record = array();
			
				$annee = $datas['annee'];
				$mois = $datas['mois'];
				$rendezvous = $datas['rendezvous'];
				$jour = $datas['jour'];
				
				$seance1 = $datas['seance1'];
				$seance2 = $datas['seance2'];
				$seance3 = $datas['seance3'];
				$seance4 = $datas['seance4'];
				$seance5 = $datas['seance5'];
				$seance6 = $datas['seance6'];
				$seance7 = $datas['seance7'];
				$seance8 = $datas['seance8'];
				
				if(strlen($seance1) != 0 && $seance1 != "unselect")
				{ $tab_client[] = $seance1;
				  $tab_client_record [] = $seance1;
				}
				if(strlen($seance2) != 0 && $seance2 != "unselect")
				{ $tab_client[] = $seance2;
				 $tab_client_record [] = $seance2;
				}
				if(strlen($seance3) != 0 && $seance3 != "unselect")
				{ $tab_client[] = $seance3;
				 $tab_client_record [] = $seance3;
				}
				if(strlen($seance4) != 0 && $seance4 != "unselect")
				{ $tab_client[] = $seance4;
				 $tab_client_record [] = $seance4;
				}
				if(strlen($seance5) != 0 && $seance5 != "unselect")
				{ $tab_client[] = $seance5;
				 $tab_client_record [] = $seance5;
				}
				if(strlen($seance6) != 0&& $seance6 != "unselect")
				{ $tab_client[] = $seance6;
				 $tab_client_record [] = $seance6;
				}
				if(strlen($seance7) != 0 && $seance7 != "unselect")
				{ $tab_client[] = $seance7;
				 $tab_client_record [] = $seance7;
				}
				if(strlen($seance8) != 0 && $seance8 != "unselect")
				{ $tab_client[] = $seance8;
				 $tab_client_record [] = $seance8;
				}
				
				$record[$cpt] = $tab_client_record ;
				$cpt++;
			}
			
			echo "<BR>";
			echo "<pre>";
			print_r($record);
			echo "<BR>";
			echo "<pre>";
}	

?>