Нов елемент

DirectX

Registered
приемаме че сме на състезание което се провежда всяка уч. година (2011-2012,2012-2013,....)
1-вата година са участвали: иван, митко, петко
2-рата година са участвали: иван, радо,драго,петко

цаката е да изкарам резултата по следния начин: иван, радо - нов, драго - нов, петко и то в таблица
като при избор на всяка година да се появяват представители за всяка година.

За сега ползвам array_diff ама или аз не правя нещо като хората или не е това начина.

(примера е подобен на това което правя и аз)

PHP:
function newLand($numberLand)
{
		include 'connect.db.php'; 
		$godina = $_GET['godina'];
		$file = explode("-",$godina);
		$a = $file[0]-1;
		$b = $file[1]-1;
		
		$c = array($a,$b);
		$c = implode("-",$c); //previous year
	
		$sql = mysql_query("select `nomer_imot` from zemq where `s_id`='1' and `st_g`='$c'");
		//$sql2 = mysql_query("select `nomer_imot` from zemq where `s_id`='1' and `st_g`='$godina'");

		$Ar = array();
		$Ar2 = array();

		while($Row = mysql_fetch_assoc($sql)) 
		$Ar2[] = $Row['nomer_imot'];

		
		//while($Row = mysql_fetch_assoc($sql2)) 
		$Ar[] = $numberLand;
		
		$missing = array_diff($Ar2,$Ar);
		foreach ($missing as $mis) 
		echo "$mis- new";
}

по-долу имам:
PHP:
цикъл....
{
echo '<td>'.newLand($numberLand).'</td>';

}
резултата е това: 01-01- new01-01- new
и то дори извън таблицата
 
PHP:
//всички имоти през текущата година
$sql = mysql_query("select `nomer_imot` from zemq where `s_id`='1' and `st_g`='$current_year'");


//новите имоти през текущата година са тези, 
//които не са присъствали миналата година
$sql = mysql_query("select `nomer_imot` from zemq where `s_id`='1' and `st_g`='$previous_year' AND `nomer_imot` NOT IN (select `nomer_imot` from zemq where `s_id`='1' and `st_g`='$current_year') ");

//сега вече резултата - можеш да обединиш първите две заявки,
//но трябва да си сложиш едно допълнително поле за всеки ред
//което да ти указва дали е нов или стар запис
$sql = mysql_query("(select `nomer_imot`, 'old' as `status` from zemq where `s_id`='1' and `st_g`='$current_year') UNION (select `nomer_imot`, 'new' as `status` from zemq where `s_id`='1' and `st_g`='$previous_year' AND `nomer_imot` NOT IN (select `nomer_imot` from zemq where `s_id`='1' and `st_g`='$current_year') ) ");

Понеже това е доста неоптимизиран код, поне една от тия заявки можеш да я направиш като съхранена процедура, за да се изпълнява по-бързо.
 

Back
Горе