Задача такая:
Необходимо сделать запрос MySQL в PHP, чтобы записать строку с параметром slot 0 в таблицу с ближайшим свободным значением slot'a.
Т.е. сделать UPDATE строки с параметром slot 0, и если, например, в таблице уже есть 5 записей (slot=1, slot=2, slot=3, slot=4, slot=5) то значение slot 0 изменить на следующее свободное (slot=6). Какой командой такое можно реализовать?
Спустя 22 минуты (15.03.2011 - 17:17) Gadzilla написал(а):
Т.е. надо выбрать кол-во строк, у которых параметр slot больше нуля.
Спустя 1 минута, 25 секунд (15.03.2011 - 17:18) Trianon написал(а):
в таблицах SQL нет следующих или предыдущих строк.
Все строки лежат внавал.
Строить порядок так или иначе придется по какому-то полю.
Все строки лежат внавал.
Строить порядок так или иначе придется по какому-то полю.
Спустя 11 минут, 10 секунд (15.03.2011 - 17:29) Gadzilla написал(а):
Хорошо.
Но дело в том, что у 30 строк есть свой порядковый номер:
1, 2, 3, 4 и т.д.
После того, как пользователь выберет строку из таблицы (т.е. присвоит ей параметр 0) а затем захочет ее вернуть на место, нужно запросом найти свободную строку в интервале ИД от 1 до 30, и ЕСЛИ есть свободный ИД в этом интервале, то записать под номером свободного.
Но дело в том, что у 30 строк есть свой порядковый номер:
1, 2, 3, 4 и т.д.
После того, как пользователь выберет строку из таблицы (т.е. присвоит ей параметр 0) а затем захочет ее вернуть на место, нужно запросом найти свободную строку в интервале ИД от 1 до 30, и ЕСЛИ есть свободный ИД в этом интервале, то записать под номером свободного.
Спустя 5 минут (15.03.2011 - 17:34) Trianon написал(а):
Если у строки есть порядковый номер, то в каком поле таблицы он хранится?
Абстрактно, вне связи со значениями хранящихся полей, порядкового номера у строк SQL-таблиц нету.
Нету, хотите Вы этого или не хотите.
Абстрактно, вне связи со значениями хранящихся полей, порядкового номера у строк SQL-таблиц нету.
Нету, хотите Вы этого или не хотите.
Спустя 15 минут, 16 секунд (15.03.2011 - 17:50) Gadzilla написал(а):
Хорошо. Предположим, у меня в PHP переменных есть числа:
1
2
3
4
5
7
8
12
13
15
Каким образом я могу получить пропущенные числа?
1
2
3
4
5
7
8
12
13
15
Каким образом я могу получить пропущенные числа?
Спустя 10 минут, 34 секунды (15.03.2011 - 18:00) Trianon написал(а):
по разному.
Например. так:
Например. так:
$numbers = array(3,4,5,7,8,12,13,15);
$min = min($numbers);
$max = max($numbers);
for($i = $min; $i <= $max; $i++)
if(!in_array($i, $numbers))
echo " $i";