php следующий идентификатор в базе данных - PullRequest
0 голосов
/ 16 марта 2011

Мне нужен следующий идентификатор php, например: у меня есть этот идентификатор в базе данных: 10, 11, 15, 19, 31,32,34 .....

$ img_id = $ _ GET [img_id];// получить идентификатор изображения из браузера
$ row ['id'];// чтобы получить идентификатор из базы данных

Как я могу использовать php $i++ и проверить, установлен ли id в базе данных?И игнорируйте пустое id.

, потому что я хочу поместить следующее изображение внизу, в то время как некоторые изображения были удалены !!

Спасибо

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Исходя из того, что я понимаю по вашему вопросу, в вашей базе данных есть строки, идентификаторы которых не являются последовательными (1, 3, 13, 16 и т. Д.), И вы хотите получить доступ к этим строкам путем поиска последовательных чисел в цикле как возможные идентификаторы?

for($i=0; $i<100; $i++)
{
    $query = 'SELECT * FROM `table` WHERE `id` = ' . $i;
    $result = mysql_query($query);
    if(mysql_num_rows($result) > 0)
    {
        echo 'This id exists in the table: ' . $id . '<br />';
    }
}

100 здесь действует как потенциальное число, но оно должно достигать того, что вам нужно. Существует множество решений, которые вы можете применить к своей проблеме, но это было бы наиболее прямым из тех вопросов, которые вы задаете.

0 голосов
/ 16 марта 2011

Совершенно неясно, что вы пытаетесь сказать. Но я дам ему шанс.

Я думаю, что вы имеете в виду, что вы удалили некоторые записи из таблицы, и они не продолжаются с последнего MAX(id) при следующей вставке. Для этого вы можете попробовать:

Как упомянуто ниже @col, никогда не используйте это на производстве, только в своей среде тестирования. После удаления записи последовательность теряется.

mysql_query("ALTER TABLE `table_name` AUTO_INCREMENT = 1");

Это означает, что если у вас есть таблица с именем images с максимальным значением id, например, 99, и вы удалили это изображение. Следующее изображение, которое вы введете, будет иметь id=100. Теперь идентификаторы будут выглядеть примерно так: 97,98,100. Это заставит MySQL продолжить с MAX(id) + 1, поэтому выглядит 97,98,99.

Также удобная функция для получения последнего идентификатора вставки из php:

$last_id = mysql_insert_id();

Теперь $last_id будет иметь последнее значение AUTO_INCREMENT из базы данных.

Надеюсь, это поможет.

...