Липсващия номер

DirectX

Registered
Става въпрос за поредна номерация (1,2,3,....) и ако някой от номерата ги няма (изтрит договор примерно) неговото място остава празна (1,2,4,5...)
и искам да открия кой е липсващия номер;
В моя случай в базата имам номерата 2,3,4,8 като 8 е максималния елемент следователно и последния
Това е кода ми, но нещо не работи както трябва да е ..
PHP:
<?
include 'connect.db.php';

$dogovor= mysql_fetch_assoc(mysql_query("SELECT MAX(`nomer`) as `total1` FROM `dogovor`"));
$dogovor = $dogovor['total1'];
echo $dogovor;
echo "<br>";

$sql = mysql_query("Select * from dogovor order by nomer asc");
while($row = mysql_fetch_assoc($sql))
{	
	for($i=1;$i<$dogovor+1;$i++) {

	$nomer = $row['nomer'];
	
	if($nomer == $i)	echo "няма договор с номер $i <br>"; 
}
}
?>
 
PHP:
<?
include 'connect.db.php';

$dogovor= mysql_fetch_assoc(mysql_query("SELECT MAX(`nomer`) as `total1` FROM `dogovor`"));
$dogovor = $dogovor['total1'];
echo $dogovor;
echo "<br>";

$sql = mysql_query("Select * from dogovor order by nomer asc");
while($row = mysql_fetch_assoc($sql))
{	
	for($i=1;$i<$dogovor+1;$i++) {

	$nomer = $row['nomer'];
	
	if($nomer !== $i)	echo "няма договор с номер $i <br>"; 
}
}
?>
 
Не става и така ...пробвал съм със всички знаци, но не се получава ... по-скоро някъде е логическа грешка
 
Пробвай така:

PHP:
include 'connect.db.php';

$SQL = mysql_query("SELECT * FROM `dogovor` ");

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

while($Row = mysql_fetch_assoc($SQL)) {
$Ar[] = $Row['nomer'];
}

$Ar2 = range(1,max($Ar));                                                    
$missing = array_diff($Ar2,$Ar);

var_dump($missing);
 
PHP:
include 'connect.db.php';

$SQL = mysql_query("SELECT * FROM `dogovor` ");

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

while($Row = mysql_fetch_assoc($SQL)) {
$Ar[] = $Row['nomer'];
}

$Ar2 = range(1,max($Ar));                                                    
$missing = array_diff($Ar2,$Ar);

foreach ($missing as $mis) {
echo 'Your missing numbers are: '.$mis;
}
 
eddyy93 каза:
PHP:
include 'connect.db.php';

$SQL = mysql_query("SELECT * FROM `dogovor` ");

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

while($Row = mysql_fetch_assoc($SQL)) {
$Ar[] = $Row['nomer'];
}

$Ar2 = range(1,max($Ar));                                                    
$missing = array_diff($Ar2,$Ar);

foreach ($missing as $mis) {
echo 'Your missing numbers are: '.$mis;
}
Мерси много стана !!! :?:
 

Back
Горе