SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 04/11/2018, 05:03 AM   #431
gensek4
Big Clucker
 
Join Date: Jan 2015
Posts: 142
Reputation: 0
Default Re: MySQL (F.A.Q.)

В шапке темы написано, что нельзя использовать время в БД (NOW() и т.д), тогда самый лучший вариант хранить gettime(). Но как его лучше хранить, что бы можно было пользоваться всеми прелестями phpMyAdmin? Как обычное числовое - int(11), или TIMESTAMP?
gensek4 is offline   Reply With Quote
Old 04/11/2018, 10:52 AM   #432
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,731
Reputation: 138
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by gensek4 View Post
В шапке темы написано, что нельзя использовать время в БД (NOW() и т.д), тогда самый лучший вариант хранить gettime(). Но как его лучше хранить, что бы можно было пользоваться всеми прелестями phpMyAdmin? Как обычное числовое - int(11), или TIMESTAMP?
int(11)
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 28/01/2019, 06:57 PM   #433
Tailer
Big Clucker
 
Tailer's Avatar
 
Join Date: Dec 2010
Posts: 83
Reputation: 9
Default Re: MySQL (F.A.Q.)

Суть проблемы: Ни как не могу решить проблему и понять из-за чего оно появляется.
Quote:
Данное выделение не содержит уникального столбца. Изменение сетки, выставление галочки, редактирование, копирование и удаление невозможно.
То есть эта ошибка появляется после заливки базы данных на хост. ИБо на локалке все четко работает.
по просторам есть несколько решений.
1. первое это установка ключа в структуре таблицы.
2. это запрос в таблице.
Code:
ALTER TABLE tablename ADD newid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
Но таким образом мы создаем еще один столбец . Но это не вариант.
хотел бы спросить кто как решал эту проблему. ибо вопросы по данной теме есть а вот решени
Tailer is offline   Reply With Quote
Old 28/01/2019, 07:00 PM   #434
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,731
Reputation: 138
Default Re: MySQL (F.A.Q.)

Покажи запрос создания таблицы.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 28/01/2019, 07:43 PM   #435
Tailer
Big Clucker
 
Tailer's Avatar
 
Join Date: Dec 2010
Posts: 83
Reputation: 9
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Stepashka View Post
Покажи запрос создания таблицы.
Эм, как такого запроса создание таблицы нету, таблицы уже готовые и созданы. в них уже есть столбцы. делаются только запросы на чтению и перезаписи. или я чего то не понимаю, просто в коде запросов на создание объектов бд нету.
Но вот например регистрация аккаунта:
Code:
stock bool: OnPlayerRegister(const playerid, const password[])
{
	if(IsPlayerConnected(playerid))
 	{
 		new query[128+MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME];
  		GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
       	format(query, sizeof(query), "INSERT INTO `players` (`Name`, `Key`, `Tested`) VALUES ('%s', '%s', %d)", playername, password, PlayerInfo[playerid][pTested]);
       	mysql_query(query);
        PlayerInfo[playerid][pID] = mysql_insert_id();
        //Registration(playerid, 1);
        OnPlayerLogin(playerid, password, false);
        //SendClientMessage(playerid, COLOR_WHITE, "Авто логин");
        return true;
    }
    return false;
}
То есть создание записи строчки в бд

p.s что бы сразу было понятно, я скачал готовый мод с бд готовой
Tailer is offline   Reply With Quote
Old 28/01/2019, 09:05 PM   #436
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,731
Reputation: 138
Default Re: MySQL (F.A.Q.)

Ты на хост базу как переносишь, явно через файл db_name.sql, это просто набор запросов, в нём есть запросы типа CREATE TABLE, вот их я и хочу увидеть.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 29/01/2019, 07:19 AM   #437
Tailer
Big Clucker
 
Tailer's Avatar
 
Join Date: Dec 2010
Posts: 83
Reputation: 9
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Stepashka View Post
Ты на хост базу как переносишь, явно через файл db_name.sql, это просто набор запросов, в нём есть запросы типа CREATE TABLE, вот их я и хочу увидеть.
Все равно не нашел твоего вопроса. То есть в бд нету ни где создание запроса на create Table и в моде нету. вот например таблица бизнесы где появляется эта проблема изначально. может быть я конечно что то туплю.
Attached Files
File Type: zip bizzes.zip (2.6 KB, 1 views)
Tailer is offline   Reply With Quote
Old 29/01/2019, 09:11 AM   #438
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,731
Reputation: 138
Default Re: MySQL (F.A.Q.)

26 строка в файле...
У тебя неправильно создаются индексы:
Code:
--
-- Структура таблицы `bizzes`
--

CREATE TABLE IF NOT EXISTS `bizzes` (
`ID` int(11) NOT NULL,
  `Owned` int(1) NOT NULL DEFAULT '0',
  `Owner` varchar(24) NOT NULL DEFAULT 'The State',
  `Message` varchar(32) NOT NULL DEFAULT 'None',
  `Extortion` varchar(24) NOT NULL DEFAULT 'NoOne',
  `EntranceX` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceY` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceZ` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitX` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitY` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitZ` float(7,3) NOT NULL DEFAULT '0.000',
  `BuyPrice` int(1) NOT NULL DEFAULT '0',
  `EntranceCost` int(1) NOT NULL DEFAULT '0',
  `Till` int(1) NOT NULL DEFAULT '5000',
  `Locked` int(1) NOT NULL DEFAULT '0',
  `Interior` int(1) NOT NULL DEFAULT '0',
  `Products` int(1) NOT NULL DEFAULT '250',
  `MaxProducts` int(1) NOT NULL DEFAULT '250',
  `PriceProd` int(1) NOT NULL DEFAULT '10',
  `Type` int(1) NOT NULL DEFAULT '0',
  `Heroin` int(1) NOT NULL DEFAULT '0',
  `Weed` int(1) NOT NULL DEFAULT '0',
  `Virtual` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=cp1251;

--
-- Индексы таблицы `bizzes`
--
ALTER TABLE `bizzes`
 ADD KEY `ID` (`ID`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `bizzes`
--
ALTER TABLE `bizzes`
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=31;
По правильному должно быть так:
Code:
--
-- Структура таблицы `bizzes`
--

CREATE TABLE IF NOT EXISTS `bizzes` (
`ID` int(11) unsigned NOT NULL,
  `Owned` int(1) NOT NULL DEFAULT '0',
  `Owner` varchar(24) NOT NULL DEFAULT 'The State',
  `Message` varchar(32) NOT NULL DEFAULT 'None',
  `Extortion` varchar(24) NOT NULL DEFAULT 'NoOne',
  `EntranceX` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceY` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceZ` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitX` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitY` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitZ` float(7,3) NOT NULL DEFAULT '0.000',
  `BuyPrice` int(1) NOT NULL DEFAULT '0',
  `EntranceCost` int(1) NOT NULL DEFAULT '0',
  `Till` int(1) NOT NULL DEFAULT '5000',
  `Locked` int(1) NOT NULL DEFAULT '0',
  `Interior` int(1) NOT NULL DEFAULT '0',
  `Products` int(1) NOT NULL DEFAULT '250',
  `MaxProducts` int(1) NOT NULL DEFAULT '250',
  `PriceProd` int(1) NOT NULL DEFAULT '10',
  `Type` int(1) NOT NULL DEFAULT '0',
  `Heroin` int(1) NOT NULL DEFAULT '0',
  `Weed` int(1) NOT NULL DEFAULT '0',
  `Virtual` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Индексы таблицы `bizzes`
--
ALTER TABLE `bizzes`
 ADD PRIMARY KEY (`ID`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `bizzes`
--
ALTER TABLE `bizzes`
MODIFY `ID` int(11) unsigned NOT NULL AUTO_INCREMENT;
Не знаю кто писал этот мод, но человек явно знаком с БД поверхностно.
Кодировка cp1251 для таблицы выбрана ужасная, при хранении кириллицы будут проблемы.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 29/01/2019, 10:10 AM   #439
Tailer
Big Clucker
 
Tailer's Avatar
 
Join Date: Dec 2010
Posts: 83
Reputation: 9
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Stepashka View Post
26 строка в файле...
У тебя неправильно создаются индексы:
Code:
--
-- Структура таблицы `bizzes`
--

CREATE TABLE IF NOT EXISTS `bizzes` (
`ID` int(11) NOT NULL,
  `Owned` int(1) NOT NULL DEFAULT '0',
  `Owner` varchar(24) NOT NULL DEFAULT 'The State',
  `Message` varchar(32) NOT NULL DEFAULT 'None',
  `Extortion` varchar(24) NOT NULL DEFAULT 'NoOne',
  `EntranceX` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceY` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceZ` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitX` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitY` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitZ` float(7,3) NOT NULL DEFAULT '0.000',
  `BuyPrice` int(1) NOT NULL DEFAULT '0',
  `EntranceCost` int(1) NOT NULL DEFAULT '0',
  `Till` int(1) NOT NULL DEFAULT '5000',
  `Locked` int(1) NOT NULL DEFAULT '0',
  `Interior` int(1) NOT NULL DEFAULT '0',
  `Products` int(1) NOT NULL DEFAULT '250',
  `MaxProducts` int(1) NOT NULL DEFAULT '250',
  `PriceProd` int(1) NOT NULL DEFAULT '10',
  `Type` int(1) NOT NULL DEFAULT '0',
  `Heroin` int(1) NOT NULL DEFAULT '0',
  `Weed` int(1) NOT NULL DEFAULT '0',
  `Virtual` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=cp1251;

--
-- Индексы таблицы `bizzes`
--
ALTER TABLE `bizzes`
 ADD KEY `ID` (`ID`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `bizzes`
--
ALTER TABLE `bizzes`
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=31;
По правильному должно быть так:
Code:
--
-- Структура таблицы `bizzes`
--

CREATE TABLE IF NOT EXISTS `bizzes` (
`ID` int(11) unsigned NOT NULL,
  `Owned` int(1) NOT NULL DEFAULT '0',
  `Owner` varchar(24) NOT NULL DEFAULT 'The State',
  `Message` varchar(32) NOT NULL DEFAULT 'None',
  `Extortion` varchar(24) NOT NULL DEFAULT 'NoOne',
  `EntranceX` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceY` float(7,3) NOT NULL DEFAULT '0.000',
  `EntranceZ` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitX` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitY` float(7,3) NOT NULL DEFAULT '0.000',
  `ExitZ` float(7,3) NOT NULL DEFAULT '0.000',
  `BuyPrice` int(1) NOT NULL DEFAULT '0',
  `EntranceCost` int(1) NOT NULL DEFAULT '0',
  `Till` int(1) NOT NULL DEFAULT '5000',
  `Locked` int(1) NOT NULL DEFAULT '0',
  `Interior` int(1) NOT NULL DEFAULT '0',
  `Products` int(1) NOT NULL DEFAULT '250',
  `MaxProducts` int(1) NOT NULL DEFAULT '250',
  `PriceProd` int(1) NOT NULL DEFAULT '10',
  `Type` int(1) NOT NULL DEFAULT '0',
  `Heroin` int(1) NOT NULL DEFAULT '0',
  `Weed` int(1) NOT NULL DEFAULT '0',
  `Virtual` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Индексы таблицы `bizzes`
--
ALTER TABLE `bizzes`
 ADD PRIMARY KEY (`ID`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `bizzes`
--
ALTER TABLE `bizzes`
MODIFY `ID` int(11) unsigned NOT NULL AUTO_INCREMENT;
Не знаю кто писал этот мод, но человек явно знаком с БД поверхностно.
Кодировка cp1251 для таблицы выбрана ужасная, при хранении кириллицы будут проблемы.
Хм, спасибо за разбор. только почему на денвере (локалке) все гуд. а на хосте проблема ?
То есть ты устанавливаешь на столбец
Quote:
ID
статус
Code:
unsigned NOT NULL AUTO_INCREMENT.
А в моем случае это выглядит так
Code:
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=31;
это значит что не может установиться ключ корректно верно ?
И по поводу кирилицы. вроде бы нормально все сохраняется,перезаписывает, и читает
просто в данной теме я читал что ты советуешь использовать
Quote:
cp1251_general_ci
просто для кодировки в своей базе я поставил именно это кодировку
Tailer is offline   Reply With Quote
Old 29/01/2019, 03:46 PM   #440
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,731
Reputation: 138
Default Re: MySQL (F.A.Q.)

Основная проблема у тебя в отсутствии флага PRIMARY KEY, а не в способе установки автоинкримента.
Возможно разные версии мускула.
Quote:
Originally Posted by Tailer View Post
просто в данной теме я читал что ты советуешь использовать
просто для кодировки в своей базе я поставил именно это кодировку
Да что ты?! А можно ссылку?
Quote:
Originally Posted by Stepashka View Post
utf8_general_ci - должно отскакивать от зубов, ни какая другая. Мультибайтовая кодировка используемая в UNIX подобных системах. Позволяет избегать проблем с хранением специализированных символов и любого языка.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[GameMode] Basic MySQL Account Script [MySQL R7, cache functions, easydialog, Whirlpool, salted passwords] ReneG Gamemode Scripts 70 02/03/2014 11:48 AM
[GameMode] MySQL CLEAN GAMEMODE [Whirlpool, MySQL BlueG R7, Cache, Ready Package (Windows)] GiamPy. Gamemode Scripts 13 13/09/2013 04:31 PM
BlueG MySQL plugin - Failed (plugins/mysql.so: undefined symbol: _Z13stringvprintfPKcPc) linuxthefish Plugin Development 10 13/07/2013 10:56 AM
[Tool/Web/Other] MySQL DB Manager - Easily manage your MySQL databases with this remote application fiki574 Tools and Files 13 22/07/2012 09:41 AM


All times are GMT. The time now is 02:12 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.