Я разрабатываю проект в zf2 с помощью доктрины, и мне нужно создать метод для нумерации поля order
чтобы значения были последовательными. До:
+-----+-------+--------+------------+ | id | order | item | collection | +-----+-------+--------+------------+ | 987 | 1 | apple | fruits | | 46 | 2 | banana | fruits | | 394 | 7 | grape | fruits | | 265 | 30 | pear | fruits | | 89 | 1 | squash | vegetables | +-----+-------+--------+------------+
После:
+-----+-------+--------+------------+ | id | order | item | collection | +-----+-------+--------+------------+ | 987 | 1 | apple | fruits | | 46 | 2 | banana | fruits | | 394 | 3 | grape | fruits | | 265 | 4 | pear | fruits | | 89 | 1 | squash | vegetables | +-----+-------+--------+------------+
Последовательности порядка – по collection
, но мне не нужен метод для нумерации всего набора данных; просто записи в конкретной коллекции.
Некоторые из решений, которые я рассматриваю, включают:
new_order
которое является полем new_order
, id
и обновите current_table.order = new_table.new_order
, $collection = … // results from select query where collection=fruits n = 1; For each ($collection as $item) { // update query to set order=n where id=$item[id] n += 1 }
Любые другие мысли?
Очень, определенно, пожалуйста, используйте второй метод … IE цикл через записи и обновление.
Быстрая причина не использовать временные таблицы:
Что вам нужно сделать: