У меня есть одна простая таблица. имя столбца первичного ключа является идентификатором. У меня есть почти 200 записей и некоторые, как я удалил некоторые записи. Теперь идентификационный столбец имеет следующие записи
1
2
4
5
6
8
9
Какое-либо тело может сказать мне, какой запрос я могу записать, что возвращают меня все недостающие строки? Например, 3,7 строки в вышеупомянутом примере. Или какая-либо функция PHP, которые делают это?
<?php
// CONNECT TO YOUR DB
$missingRecords = array(); //<-- array you'll store your missing records
$resultsArray = array(); //<-- log the good results
$count = 0;
$lastResult = 0;
$query = "SELECT * FROM `your_table`";
$results = mysql_query($query);
// populate the results array with your existing id #'s
while($data = mysql_fetch_assoc($results)){
array_push($resultsArray,$data['id']);
$lastResult = $data['id'];
}
// cross check the id number with the iterator. if no matches come up push the missing array
for($i=0;$i<$lastResult;$i++){
if(cross_check($resultsArray[$i])){
$count++;
}else{
array_push($missingRecords, $count);
$count++;
}
}
// function to cross check iterator and result array id number
function cross_check($id){
global $count;
global $resultsArray;
for($i=0;$i<count($resultsArray);$i++){
if($resultsArray[$i] == $count){
return true;
}
}
return false;
}
// print out the missing records
for($i=1;$i<count($missingRecords);$i++){
echo 'Missing Record: ' . $missingRecords[$i] . '<br>';
}
?>