2014-02-15 4 views
2

У меня есть три идентификатора клиента в моей таблице, Let's Say A, B, C. Я хочу создать таблицу заказов для управления заказами от этих клиентов. Я хочу создать столбцы OrderID таким образом, чтобы он был автоматически добавлен с добавлением кунстомера Id, например. OrderId записи столбцов:пользовательский автоинкремент в таблице Mysql

A_1 --->A's 1st order, 
A_2 --->A's 2nd order, 
B_1 --->B's 1st order, 
C_1 --->C's 1st order, 
A_3 --->A's 3rd order, 
C_2 --->C's 2nd order, 
C_3 --->C's 3rd order, 
B_2 --->B's 2nd order, 
A_4 --->A's 4th order, 
A_5 --->A's 5th order 

ответ

1
CREATE TABLE IF NOT EXISTS `orders` (
    `order_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, 
    `customer_id` BIGINT UNSIGNED NOT NULL, 
    `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`), 
    INDEX `fk_customer_orders` (`customer_id` ASC) 
); 

Это позволяет легко INSERT ваши заказы, никогда не думая о сгенерированного идентификатора. Дополнительный номер created позволит вам отсортировать их и предоставить им номер, который вы хотите.

$result = $mysqli->query("SELECT * FROM `orders` WHERE `customer_id` = 1 ORDER BY `created`"); 

$orders = array(); 
while ($row = $result->fetch_assoc()) { 
    $orders[] = $row; 
} 

echo count($orders) , PHP_EOL; // 42 

foreach ($orders as $delta => $order) { 
    echo "Your order #" , ($delta + 1) , " with the unique identifier {$order["order_id"]}." , PHP_EOL; 
} 

Просто пример.

+0

Я хочу, чтобы order_id был последовательным для соответствующего клиента. Если я запрашиваю таблицы заказов для конкретного клиента, тогда он должен показать порядковый номер nos ..... – Ravindra

-1

Вы можете создавать собственные значения автоинкрементируемого с помощью хранимых процедур без PHP, как описано в:

http://en.latindevelopers.com/ivancp/2012/custom-auto-increment-values/

вы получите ключи, как:

SELECT * FROM custom_autonums; 
+----+------------+------------+ 
| id | seq_1  | seq_2  | 
+----+------------+------------+ 
| 4 | 001-000001 | DBA-000001 | 
| 5 | 001-000002 | DBA-000002 | 
| 6 | 001-000003 | DBA-000003 | 
| 7 | 001-000676 | DBA-000004 | 
| 8 | 001-000677 | DBA-000005 | 
| 9 | 001-000678 | DBA-000006 | 

Вы можете легко изменить, чтобы генерировать ваш собственный авто-числовой.

+0

Вы должны добавить необходимые шаги в ответ, иначе, если ссылка уйдет, по крайней мере, мы можем прочитать оригинальную процедуру. – gipi

Смежные вопросы