За последние 24 часа нас посетили 22825 программистов и 1258 роботов. Сейчас ищут 707 программистов ...

Получить следующий номер авто инкремента

Тема в разделе "MySQL", создана пользователем jei, 1 июл 2013.

  1. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Поясняю.
    Скажем у вас в таблице было 3 строки с записями .И поле ид выставлено авто инкремент.
    вотс.Тут допустим вы по тёрли 3 запись.Сало быть у вас остаётся записи с ид 1,2.
    Тут вам снова надо записать .И вы записываете и получаете ид 4.Всё верно.Так вот мне нужно не сделав ещё запись получить это 4 ку.Или правильней сказать.Следующее значение авто инкремента.Спасибо друзья)
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    php.net/manual/ru/function.mysql-insert-id.php

    Я б на это не особо полагался...
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    это не то.

    но вопрос не в этом.
    зачем?
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    jei
    читаем про mysql sequence
    но насколько помню, они нормально так и не сделаны. тогда переходи на oracle )
     
  5. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Oracle? вот уж нет уж... 6 лет с ним ****лся, никому не посоветую )

    jei, все же элементарно:
    Код (Text):
    1.  
    2. SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'название_таблицы' AND table_schema = 'название_базы';
    нехочешь лазить в information_schema?
    не беда:
    Код (Text):
    1.  
    2. SHOW TABLE STATUS LIKE 'название_таблицы';
    интересующий тебя столбец: Auto_increment

    З.Ы. читайте мануалы, хотябы перед сном.
     
  6. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Попробую information_schema igordata , как зачем ну надо мне присвоить каждому юзеру уник ид.А потом фотку загружаю его и этой фотке дам название такое же как ид.Вот а потом будет легко подтянуть эту фотку.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    для этого есть схема такого типа:
    сначала вставляешь, потом берешь id юзера. если получаются косяки при большом наплыве - надо брать в транзакцию.
     
  8. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Отлично Ke1eth хоть мы с тобой ругаемся но толковую вещь посоветовал спасибо.Вот решение.
    С обработкой запроса не много потупил, но потом догадался что надо AUTO_INCREMENT тащить в обработке.

    Код (Text):
    1. $query6 = "SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'cis_clients2' AND table_schema = 'klinika'";
    2. $result6 = mysql_query($query6, $dbcnx);
    3. while ($row4 = mysql_fetch_assoc($result6)){
    4.       $id_21[] = $row4["AUTO_INCREMENT"];
    5.       }
    6. echo $id_21[0];
    runcore да вот согласен что, мускуль наверняка не самая крутая система баз данных.
    тоже подумываю в сторону оракле или sql.Но для пхп по моему вполне хватает.
    Я вот не как не могу начать писать программу на сях.Всё думаю что же ёклмн писать)
    Что может людям пригодится.Может антивирус бесплатный забабахать?))

    Да всем спасибо кто отписался.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    толковую вещь посоветовал я. =) не делай так как ты решил делать.
     
  10. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    А что плохого то?Нормально номер получаем, проверил отдаёт именно значение авто инкремента.
    Хорошо согласен igordata твой вариант самый лучший.
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    плохого, что без транзакций ты можешь получить косяк - получил номер, пока возился с фоткой, другой юзер вставился. и номер уже протух =)
     
  12. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    а если надо будет 2 фотки?
     
  13. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    igordata это конечно верно если не учитывать тот момент.Что выдача номера и присвоение этого номера фотке,происходит в коде на 10 строках.То есть в одно время.Теоретически такого не возможно.Ну всякое конечно может быть.Вот с ну по поводу этого что скажу.У меня есть определённое время и оплата за это время.Я уже не могу вылезать за эти рамки.Будет следующее финансирование и в дальнейшем вылезет даже если этот косячок хотя это практически не возможно.То буду дорабатывать эти моменты.
    iliavlad по поводу если фотки будут две это уже в дальнейшем и то врятли это не соц сеть с фотками).Вот с и если там будет мулти загрузка ,то там всё придётся переделывать.А механизм такой же скажем вторую фотку будем называть так 36_1.jpg а первая у нас была 36.jpg и всё вяжется на идешки юзера.Как говориться не усложняй там где этого не требуется.
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    это только так кажется.
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Все решается просто получением login пользователя... И хоть 10 фоток =)