StevenH
20.12.2015, 18:59
Всем привет. Делаю развозчиков продуктов, ну и почти закончил заказ продуктов. Коротко как я сделал:
При заказе продуктов, в отдельной таблице создаётся строка (INSERT INTO), со следующими столбцами:
- id (ид бизнеса)
- name (название бизнеса)
- amount (кол-во товара).
И так, в чём же суть вопроса? Например если в таблице с заказами продуктов, уже есть заказ.. И если ещё раз заказать, то создаётся ещё одна строка, с таким же id, name, но с другим количеством. И вот, как сделать так, что бы оно проверяло, если уже данный id есть в таблице, то оно будет НЕ ДОБАВЛЯТЬ (INSERT INTO), а обновлять строку (UPDATE). Пытался сделать, но увы, сток не вызывается. Вот что получилось сделать.
В диалоге:
SendClientMessage(playerid, COLOR_GREEN, "Товар заказан, ожидайте доставки");
mysql_format(connects, string, sizeof(string), "SELECT * FROM `orders_product` WHERE `id` = '%d'", BusinessInfo[id][bID]);
mysql_function_query(connects, string, true, "Orders_Product", "i", playerid);
Сам сток Orders_Product:
stock Orders_Product(playerid)
{
static rows, fields;
cache_get_data(rows, fields);
if(rows)
{
mysql_format(connects, string, sizeof(string), "UPDATE `orders_product` SET `name` = '%s', `amount` = '%d' WHERE `id` = '%d'", BusinessInfo[id][bName], prod, BusinessInfo[id][bID]);
mysql_function_query(connects, string, false, "", "");
return true;
}
else
{
mysql_format(connects, string, sizeof(string), "INSERT INTO `orders_product` VALUES ('%d', '%s', '%d')", BusinessInfo[id][bID], BusinessInfo[id][bName], prod);
mysql_function_query(connects, string, false, "", "");
}
mysql_function_query(connects, "SELECT * FROM `orders_product`", true, "Load_OrdersProduct", "");
return true;
}
Знаю, что получился бред, но всё же, помогите решить данную проблемку..
При заказе продуктов, в отдельной таблице создаётся строка (INSERT INTO), со следующими столбцами:
- id (ид бизнеса)
- name (название бизнеса)
- amount (кол-во товара).
И так, в чём же суть вопроса? Например если в таблице с заказами продуктов, уже есть заказ.. И если ещё раз заказать, то создаётся ещё одна строка, с таким же id, name, но с другим количеством. И вот, как сделать так, что бы оно проверяло, если уже данный id есть в таблице, то оно будет НЕ ДОБАВЛЯТЬ (INSERT INTO), а обновлять строку (UPDATE). Пытался сделать, но увы, сток не вызывается. Вот что получилось сделать.
В диалоге:
SendClientMessage(playerid, COLOR_GREEN, "Товар заказан, ожидайте доставки");
mysql_format(connects, string, sizeof(string), "SELECT * FROM `orders_product` WHERE `id` = '%d'", BusinessInfo[id][bID]);
mysql_function_query(connects, string, true, "Orders_Product", "i", playerid);
Сам сток Orders_Product:
stock Orders_Product(playerid)
{
static rows, fields;
cache_get_data(rows, fields);
if(rows)
{
mysql_format(connects, string, sizeof(string), "UPDATE `orders_product` SET `name` = '%s', `amount` = '%d' WHERE `id` = '%d'", BusinessInfo[id][bName], prod, BusinessInfo[id][bID]);
mysql_function_query(connects, string, false, "", "");
return true;
}
else
{
mysql_format(connects, string, sizeof(string), "INSERT INTO `orders_product` VALUES ('%d', '%s', '%d')", BusinessInfo[id][bID], BusinessInfo[id][bName], prod);
mysql_function_query(connects, string, false, "", "");
}
mysql_function_query(connects, "SELECT * FROM `orders_product`", true, "Load_OrdersProduct", "");
return true;
}
Знаю, что получился бред, но всё же, помогите решить данную проблемку..