php и mysql первичный ключ

У меня есть одна простая таблица. имя столбца первичного ключа является идентификатором. У меня есть почти 200 записей и некоторые, как я удалил некоторые записи. Теперь идентификационный столбец имеет следующие записи

1
2
4
5
6
8
9

Какое-либо тело может сказать мне, какой запрос я могу записать, что возвращают меня все недостающие строки? Например, 3,7 строки в вышеупомянутом примере. Или какая-либо функция PHP, которые делают это?

1
задан Benjamin 7 January 2014 в 14:06
поделиться

1 ответ

<?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>'; 
}

?>
2
ответ дан 3 September 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: