Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Выполнить условие в php+ mysql
Сообщения
Pisatel

Мастера, всем здравствуйте! Нужна помощь. Вот суть.
Нужна база
имя
фамилия
и тп. (к примеру)

надо чтоб при достижении числа к примеру 20 (20 записей в таблице) первая строчка удалялась и перезаписывалась к примеру с данными
имя2(по одному значению будет достаточно)(т.е замкнуть вот это движение).
Как такое провернуть? Буду благодарен за помощь.

30 Янв 2013, 14:41
Magnat

Pisatel, так удалялась или перезаписывалась?

30 Янв 2013, 14:56
Pisatel

Вот так будет проще. У нас запись регистрации вася1, ваня2, ....саша20. пришёл петя встал 21м. (тут условие не больше 20)далее вася1 занял место за петей 20. со значением вася1(2). и т. д.

30 Янв 2013, 15:17
Okula

Будет удалять первую запись.
[php:1:469a3bab25]if($mysqli->query("SELECT `id` FROM `table`")->num_rows > 20) {
$mysqli->query("DELETE FROM `table` ORDER BY `id` ASC LIMIT 1");
}[/php:1:469a3bab25]
Сортировку при выводе делай ORDER BY `id` DESC

30 Янв 2013, 15:44
Pisatel

Нет, все намного сложнее. Итак, на примере.
Записи уже есть:

1Вася

2Петя

3Саша

4Даша

5.Артем

6.Валера

...

20Андрей


Пришел Максим 21, стало
1Петя

2Саша

3Даша

4.Артем

5.Валера

...

19Андрей

20Максим

21Вася(2)


Пришел Коля, стало
1Саша

2Даша

3.Артем

4.Валера

...

17Андрей

18Максим

19Вася(2)

20Коля

21Петя(2)
добавлено спустя 1 минуту:
То есть постоянный цикл в первой двадцатке.

30 Янв 2013, 16:00
Flyd

первого удаляешь и все. В чем проблема?

30 Янв 2013, 16:07
Pisatel

Первого не удаляем, первого перезаписываем 21м с цифрой (2)
добавлено спустя 14 минут:
Более понятно: пришел Вася. Прошел цикл 20, перезаписался, стал Вася(2). Когда пошел на третий цикл, стал Вася(3), на четвертый Вася(4)

30 Янв 2013, 16:27
Okula

Pisatel, даже в твоём примере ты дописываешь последнюю строку и удаляешь первую.
Твой же пример только с пятью:

1 Саша
2 Маша
3 Коля
4 Нина
5 Вася

Пришёл Никита, встал последним, ушёл Саша:

1 Маша
2 Коля
3 Нина
4 Вася
5 Никита

Пришёл Дима, встал последним, ушла Маша:

1 Коля
2 Нина
3 Вася
4 Никита
5 Дима

и т.д. код для решения данной задачи я тебе дал.

30 Янв 2013, 17:18
Pisatel

В том-то и дело, что первый не уходит, а снова становится в список, только 21, а тот, кто пришел, становится 20, все остальные сдвигаются вверх. Тот, кто был первым, становится 21 и к имени добавляется число цикла Вася(2). И так постоянно. То есть, никто не удаляется. Вот в чем трудность

30 Янв 2013, 17:43
Flyd

тогда добавляешь поле упорядочивания, у первого делаешь максимальный номер + 1 и добавляешь (2), а у нового элемента делаешь максимальный номер +2

30 Янв 2013, 18:01
Ответить на тему