On 3 May 2010 14:34, Andre Polykanine <andre@xxxxxxxx> wrote: > Hello everyone, > It's not a strictly PHP question, however since I use that with PHP, > I'm asking it there. > How can I accomplish the task of inserting rows into MySql database > with missing IDs? Say, I have rows with IDs 1, 2, 3, 5, 9, 12, 17, and > 195. How do I make the check that allows to insert firstly the missing > IDs and only then apply the auto-increment? > Thanks! Using PHP, you could find the missing IDs by using the following steps. 1 - Get the current maximum ID. SELECT max(ID) as Max FROM table If you aren't interested in the ones before the first valid ID then also retrieve the min(ID). So you end up with $MinID = 1, $MaxID = 195. 2 - Get all the current IDs. SELECT ID FROM table So you end up with $KnownIDs = array(1,2,3,5,9,12,17,195); 3 - Use the range() function in PHP to build an array from the lowest id (or 1) to the highest id. $RangeIDs = range($MinID, $MaxID); 4 - Use array_diff($RangeIDs, $KnownIDs); to find the missing IDs. So ... <?php $MinID = 1; $MaxID = 30; // Edited to suit output $KnownIDs = array(1,2,3,5,9,12,17,30); // Edited to suit output $RangeIDs = range($MinID, $MaxID); print_r(array_diff($RangeIDs, $KnownIDs)); ?> outputs ... Array ( [3] => 4 [5] => 6 [6] => 7 [7] => 8 [9] => 10 [10] => 11 [12] => 13 [13] => 14 [14] => 15 [15] => 16 [17] => 18 [18] => 19 [19] => 20 [20] => 21 [21] => 22 [22] => 23 [23] => 24 [24] => 25 [25] => 26 [26] => 27 [27] => 28 [28] => 29 ) -- ----- Richard Quadling "Standing on the shoulders of some very clever giants!" EE : http://www.experts-exchange.com/M_248814.html EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 ZOPA : http://uk.zopa.com/member/RQuadling -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php