За последние 24 часа нас посетили 22860 программистов и 1263 робота. Сейчас ищет 751 программист ...

Автоматическая нумерация строк по порядку, без пробоев?

Тема в разделе "MySQL", создана пользователем МихаилГалузо, 11 янв 2017.

  1. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    Как сделать, чтобы записи в таблице автоматически нумеровались последовательно без пробоев? А именно есть таблица table в ней строки с id "1,2,4,5,6", потому что id=''3'' удалили, а хотелось чтобы было автоматически id "1,2,3,4,5", при удалении id=''3''. Большое спасибо.
     
  2. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    1. Для чего вам это нужно?
    2. Это сделать можно но совершенно недопустимо с точки зрения архитектуры базы данных поэтому см. вопрос 1 и укажите для чего вам это нужно. Однозначно существует правильное решение вашей задачи.
     
  3. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    У меня меню которое редактируется (удаление, добавление) пользователем. echo '<a href="#" class="">'.$row_menu["type"].'</a> выдается в цикле do{}while. $in - число пунктов меню которые подсчитывает функция mysql_num_rows($in).

    К примеру у меня меню состоит из трех пунктов тогда $in=3; запуская в цикл (три итерации по примеру) с увеличением $t++ c каждой итерацией, где переменная $t участвует в определении id строки пункта меню mysql_query("SELECT * FROM category WHERE menu_id =$t");
    Так вое у меня три пункта меню с id(1,2,7) в MySQL, а селект mysql_query("SELECT будет выбирать пункты с id (1,2,3) следовательно id=3 будет пустой и в меню будет пусто. Следовательно мне нужно что бы селект производил выборку по id(1,2,7) , но у меня цикл с увеличением $t на одну единицу.
     
  4. Ric

    Ric Активный пользователь

    С нами с:
    9 фев 2011
    Сообщения:
    97
    Симпатии:
    2
    Неверная логика.
    Сильно в суть проблемы не вникнул, но раз 3 пункта надо выбрать используй limit.
     
  5. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    @МихаилГалузо, как-то я прям зачитался. о, по правде говоря, понял, что ты что-то делаешь не так ещё со строки выдается в цикле do{}while.
    Тебе надо как-то вообще всю логику продумать заново.
    Ну или используй цикл foreach по выборке из бд. Там тебе не нужно будет увеличивать при каждой итерации переменную на единицу. В общем почитаешь про foreach, должен понять. Это может спасти тебя в данном случае.
     
    МихаилГалузо нравится это.
  6. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    Благодарю, помогли.