Jump to content

Прибавление числа к номеру заказа


Recommended Posts

Добрый день форумчане.

Как-то давно видел на форуме решение о прибавлении заданного числа к номеру товара, но теперь не нахожу(

Пример: Заказ №1, Заказ №2, Заказ №3...

А хочу задать чтобы после каждого заказа, увеличивалось на "3":

Заказ №3, Заказ №6, Заказ №9, Заказ №12...

Link to post
Share on other sites

Так сделать невозможно потому как ID заказ генерируется после создания записи в sql.

+ id заказа автоматически генерируется и приплюсовать уж точно не выйдет.

Edited by Noxter
Link to post
Share on other sites

Так сделать невозможно потому как ID заказ генерируется после создания записи в sql.

+ id заказа автоматически генерируется и приплюсовать уж точно не выйдет.

Странно, точно помню было решение на форуме

Link to post
Share on other sites

Странно, точно помню было решение на форуме

Прям сама точность :D

Возможно речь шла о изменении порядкового номера заказа.

Link to post
Share on other sites

Так сделать невозможно потому как ID заказ генерируется после создания записи в sql.

+ id заказа автоматически генерируется и приплюсовать уж точно не выйдет.

 

Шикарное заявление!

Готов поспорить с заявителем на 100-1000$, что так сделать очень даже возможно. Думаю, что минимум два разных способа смогу предоставить...

Link to post
Share on other sites

Шикарное заявление!

Готов поспорить с заявителем на 100-1000$, что так сделать очень даже возможно. Думаю, что минимум два разных способа смогу предоставить...

Ну правильно, на сегодняшний день, все можно сделать)

Link to post
Share on other sites

Шикарное заявление!

Готов поспорить с заявителем на 100-1000$, что так сделать очень даже возможно. Думаю, что минимум два разных способа смогу предоставить...

Покажи всем Корс какой ты умный, докажи что кроме паршивого тролинга ты способен сделать что то во благо коммюнити.

P.S. С радостью оценю решение задачи ТС Корс-ом.

Link to post
Share on other sites

Значение инкремента можно установить через auto_increment_increment. Не слишком удачная идея.

А можно через задавать ID-шник записи через триггер. Создается через CREATE TRIGGER (маны найдете).

Link to post
Share on other sites
  • 7 months later...

в view/CartView.php добавить ПЕРЕД

// Добавляем заказ в базу
$order_id = $this->orders->add_order($order);

следующие строки

// получаем айди последнего заказа и прибавляем к нему число
$this->db->query('SELECT id FROM __orders ORDER BY id DESC LIMIT 1');
$last_id = $this->db->result('id');
if(!empty($last_id))
	$order->id = intval($last_id)+3;

при оформлении заказа каждый заказ будет с номером+3.

Link to post
Share on other sites

в view/CartView.php добавить ПЕРЕД

// Добавляем заказ в базу
$order_id = $this->orders->add_order($order);

следующие строки

// получаем айди последнего заказа и прибавляем к нему число
$this->db->query('SELECT id FROM __orders ORDER BY id DESC LIMIT 1');
$last_id = $this->db->result('id');
if(!empty($last_id))
	$order->id = intval($last_id)+3;

при оформлении заказа каждый заказ будет с номером+3.

Отлично. Спасибо. 

Link to post
Share on other sites

Так сделать невозможно потому как ID заказ генерируется после создания записи в sql.

+ id заказа автоматически генерируется и приплюсовать уж точно не выйдет.

 

 

в view/CartView.php добавить ПЕРЕД

// Добавляем заказ в базу
$order_id = $this->orders->add_order($order);

следующие строки

// получаем айди последнего заказа и прибавляем к нему число
$this->db->query('SELECT id FROM __orders ORDER BY id DESC LIMIT 1');
$last_id = $this->db->result('id');
if(!empty($last_id))
	$order->id = intval($last_id)+3;

при оформлении заказа каждый заказ будет с номером+3.

 

mishanya, поздравляю! Шикарный способ! Как говорится, все гениальное просто...

 

Разве что маленькое замечание есть. Если оформлен заказ 18,  потом удален админом, а потом оформлен новый совсем другой заказ, то он тоже получит номер 18. Во-первых, у админа в письмах будут два РАЗНЫХ заказа 18 - один источник ошибок. Если админ не использует письма, а работает по админке, то может случиться и более интересная ситуация. Может ведь позвонить и первый покупатель и спросить что-то про заказ 18.  Если админ не догадается уточнить, какой из 18-х заказов обсуждается, то может появиться хорошая путаница  - покупатель по ответам админа может подумать, что админ ненормальный - магазину убыток...

Хотя ситуация на практике довольно редкая, но лучше бы чуток подправить код...

Link to post
Share on other sites

mishanya, поздравляю! Шикарный способ! Как говорится, все гениальное просто...

 

Разве что маленькое замечание есть. Если оформлен заказ 18,  потом удален админом...

 

если админ удалил заказ 18, а потом пришел новый заказ 18, не лумаю что он перепутает. это уже из области фантастики.

 

можно так сделать

// получаем айди следующего заказа и прибавляем к нему число
$this->db->query("SHOW TABLE STATUS LIKE 's_orders'");
$last_id = $this->db->result('Auto_increment');
if(!empty($last_id))
	$order->id = intval($last_id)+3;
Link to post
Share on other sites

Теперь, по-моему, совсем замечательно...
 
 

если админ удалил заказ 18, а потом пришел новый заказ 18, не лумаю что он перепутает. это уже из области фантастики.

 

Если все события произошли в течение последнего часа, то не перепутает. А если вопрос связан с заказом, оформленным два-три дня тому назад, то очень может быть. А еще бывает, что в магазине админов НЕСКОЛЬКО.  Так что  это совсем не фантастика...

Edited by Kors
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...