Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 03.11.2011, 11:01   #16
VotapilD
Оператор ЭВМ
 
Регистрация: 06.12.2009
Адрес: Мытищи
Сообщений: 42
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Определить количество записей, вставить запись?

Если количество людей нумируеться изначально с еденицы и никого не игнорит, то можно и так в конце концов сделать:

-сначала вставить в таблицу данные пользователя
-$id=mysql_insert_id();
-if($id<=10){Оставляем, выводим приняты}
-else{Удаляем, выводям не приняты}

Условие зависит от того, как в базе храниться...модами поиграться например.

При разрешении будет один запрос, при запрете - 2.

ЗЫ Если людей больше 10 уже, то блочим кнопочку подать заявку, что бы лишних неровов не было :3
(Offline)
 
Ответить с цитированием
Старый 03.11.2011, 17:35   #17
shybovycha
ПроЭктировщик
 
Аватар для shybovycha
 
Регистрация: 27.05.2007
Сообщений: 110
Написано 40 полезных сообщений
(для 33 пользователей)
Ответ: Определить количество записей, вставить запись?

А если одна из записей промежутка id = (1; N) удалена, то промежуток чисел не сплошной и алгоритм валится =)
(Offline)
 
Ответить с цитированием
Старый 03.11.2011, 19:49   #18
VotapilD
Оператор ЭВМ
 
Регистрация: 06.12.2009
Адрес: Мытищи
Сообщений: 42
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Определить количество записей, вставить запись?

Сообщение от VotapilD Посмотреть сообщение
Если количество людей нумируеться изначально с еденицы и никого не игнорит, то можно и так в конце концов сделать:
Дадада, знаю :3
(Offline)
 
Ответить с цитированием
Старый 04.11.2011, 08:11   #19
shybovycha
ПроЭктировщик
 
Аватар для shybovycha
 
Регистрация: 27.05.2007
Сообщений: 110
Написано 40 полезных сообщений
(для 33 пользователей)
Ответ: Определить количество записей, вставить запись?

Мы с вами точно говорим об одном и том же?

Моя точка зрения:

Пускай даны записи ((1, *), (2, *), (3, *), (4, *), (5, *), (6, *), (7, *), (8, *), (9, *), (10, *)).
Ваш алгоритм работает - mysql_insert_id() возвращает 10, добавление не происходит.

Но вот в какой-то момент исчезают записи (3,*), (7,*), (4,*). Имеем теперь набор ((1, *), (2, *), (5, *), (6, *), (8, *), (9, *), (10, *)).
mysql_insert_id()
по-прежнему возвращает 10, алгоритм не работает - запись добавить-то можно.

В PostgreSQL немного иной принцип работы этих счетчиков - можно оперировать ими как необходимо то. В MySQL этого нет, посему есть лишь два способа переопределить поведение поля auto_increment:
  • truncate table - удаляет все записи из таблицы и обнуляет счетчик
  • вручную перебрать все записи и позадавать им новые значения поля. Но при этом необходимо либо иметь триггер, который будет обновлять все зависимые записи, либо предусмотреть запросы на ручное исправление зависимостей
А что имеете ввиду вы?
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 08:14   #20
VotapilD
Оператор ЭВМ
 
Регистрация: 06.12.2009
Адрес: Мытищи
Сообщений: 42
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Определить количество записей, вставить запись?

В первом посте ничего не говорилось о возможности удаления, поэтому и предложил самый простой для меня вариант. Да, мы говорим об одном и том-же, но я писал обязательным условием последовательность этих записей без удаления промежуточных...

Если мой способ не подходит (слишком сложный в реализации для данной базы данных), то можно ппопробовать транзакции, может быть я их просто не допонял Тт" Разберусь надеюсь)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 17:37.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com