Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для Trane911
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.10.2013
    Сообщений
    66
    Репутация:
    1 ±

    Разбираюсь с MySQL r7.

    Всем привет. Помогите освоиться с MySQL. Пытаюсь сделать сохранение аккаунта, но что-то не получается. Что не так? Желательно, расскажите подробно. С меня спасибо! :smile3:

    Вот сам код:

    Код:
    stock SaveAccount ( playerid )
    {
        new query [ 144 ] ;
        format ( query, sizeof query, "UPDATE `users` SET \
        `pAdmin` = '%d' \
        WHERE `pAdmin` = '%d' LIMIT 1",
    	PlayerInfo [ playerid ] [ pAdmin ],
        PlayerInfo [ playerid ] [ ID ] ) ;
        mysql_function_query ( dbHandle, query, false, "", "" ) ;
        return 1;
    }

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Подключение к БД то имеется? Так же хотелось бы увидеть структуру БД и услышать о том, где, как и зачем запускаешь MySQL. Ну и логи можно

  3. #3
    Аватар для Trane911
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.10.2013
    Сообщений
    66
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Подключение к БД то имеется? Так же хотелось бы увидеть структуру БД и услышать о том, где, как и зачем запускаешь MySQL. Ну и логи можно
    Подключение имеется, аккаунты создаются. Пароль сохраняется и при авторизации на сервере пароль запрашивается из аккаунта.
    Немного не понял вопросов: "Где, как и зачем запускаешь MySQL?" На хостинге, как - не знаю как ответить на такой вопрос
    Зачем? Регистрация нужна же.
    Я думаю, что тут ошибка в коде, т.к. я там немного поковырялся

    Вот структура БД:

    Код:
    -- phpMyAdmin SQL Dump
    -- version 3.4.6
    -- http://www.phpmyadmin.net
    --
    -- Хост: localhost
    -- Время создания: Янв 29 2014 г., 19:18
    -- Версия сервера: 5.1.66
    -- Версия PHP: 5.3.10-pl0-gentoo
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    
    --
    -- База данных: `dm_samp`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Структура таблицы `users`
    --
    
    CREATE TABLE IF NOT EXISTS `users` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `login` varchar(24) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `password` varchar(64) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
      `age` int(11) NOT NULL,
      `pAdmin` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
    
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    MySQL log:

    Код:
    [19:35:18] >> mysql_query_callback( Connection handle: 1 )
    [19:35:18] Passing query SELECT `id` FROM `users` WHERE `login` = 'Trane' LIMIT 1 | ii
    [19:35:18] ProcessQueryThread(CheckPlayerRegistered) - Query was successful. (SELECT `id` FROM `users` WHERE `login` = 'Trane' LIMIT 1)
    [19:35:18] ProcessQueryThread(CheckPlayerRegistered) - Data caching enabled.
    [19:35:18] CMySQLHandler::StoreResult() - Result was stored.
    [19:35:18] CMySQLHandler::FreeResult() - Result was successfully free'd.
    [19:35:18] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
    [19:35:18] CheckPlayerRegistered(ii) - Threaded function called.
    [19:35:18] >> cache_get_data( Connection handle: 1 )
    [19:35:18] ProcessTick() - The cache has been cleared.
    [19:35:19] >> mysql_query_callback( Connection handle: 1 )
    [19:35:19] Passing query SELECT `id` FROM `users` WHERE `login` = 'Trane' LIMIT 1 | ii
    [19:35:19] ProcessQueryThread(CheckPlayerRegistered) - Query was successful. (SELECT `id` FROM `users` WHERE `login` = 'Trane' LIMIT 1)
    [19:35:19] ProcessQueryThread(CheckPlayerRegistered) - Data caching enabled.
    [19:35:19] CMySQLHandler::StoreResult() - Result was stored.
    [19:35:19] CMySQLHandler::FreeResult() - Result was successfully free'd.
    [19:35:19] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
    [19:35:19] CheckPlayerRegistered(ii) - Threaded function called.
    [19:35:19] >> cache_get_data( Connection handle: 1 )
    [19:35:19] ProcessTick() - The cache has been cleared.
    [19:35:23] >> mysql_real_escape_string( Connection handle: 1 )
    [19:35:23] CMySQLHandler::EscapeString(123456); - Escaped 8 characters to 123456.
    [19:35:23] >> mysql_query_callback( Connection handle: 1 )
    [19:35:23] Passing query SELECT * FROM `users` WHERE `login` = 'Trane' AND `password` = '123456' LIMIT 1 | i
    [19:35:23] ProcessQueryThread(PlayerLogin) - Query was successful. (SELECT * FROM `users` WHERE `login` = 'Trane' AND `password` = '123456' LIMIT 1)
    [19:35:23] ProcessQueryThread(PlayerLogin) - Data caching enabled.
    [19:35:23] CMySQLHandler::StoreResult() - Result was stored.
    [19:35:23] CMySQLHandler::FreeResult() - Result was successfully free'd.
    [19:35:23] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
    [19:35:23] PlayerLogin(i) - Threaded function called.
    [19:35:23] >> cache_get_data( Connection handle: 1 )
    [19:35:23] ProcessTick() - The cache has been cleared.
    [19:35:30] >> mysql_query_callback( Connection handle: 1 )
    [19:35:30] Passing query UPDATE `users` SET `pAdmin` = '0' WHERE `pAdmin` = '2' LIMIT 1 | 
    [19:35:30] ProcessQueryThread() - Query was successful. (UPDATE `users` SET `pAdmin` = '0' WHERE `pAdmin` = '2' LIMIT 1)
    [19:35:30] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    stock SaveAccount playerid )
    {
        new 
    query 144 ] ;
        
    format querysizeof query"UPDATE `users` SET `pAdmin` = '%d'  WHERE `pAdmin` = '%d' LIMIT 1",
        
    PlayerInfo playerid ] [ pAdmin ],
        
    PlayerInfo playerid ] [ ID ] ) ;
        
    mysql_function_query dbHandlequeryfalse"""" ) ;
        return 
    1;

    Прочитай внимательно свой запрос. Ты собираешься изменять аккаунт игрока, уровень админки которого равен ID аккаунта :)

  5. #5
    Аватар для Trane911
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.10.2013
    Сообщений
    66
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    stock SaveAccount playerid )
    {
        new 
    query 144 ] ;
        
    format querysizeof query"UPDATE `users` SET `pAdmin` = '%d'  WHERE `pAdmin` = '%d' LIMIT 1",
        
    PlayerInfo playerid ] [ pAdmin ],
        
    PlayerInfo playerid ] [ ID ] ) ;
        
    mysql_function_query dbHandlequeryfalse"""" ) ;
        return 
    1;

    Прочитай внимательно свой запрос. Ты собираешься изменять аккаунт игрока, уровень админки которого равен ID аккаунта :)
    Что-то не пойму. Напиши, как будет правильно, желательно, напиши сохранение каких-нибудь 2 параметров. Например, админка и деньги, а я разберусь. Заранее спасибо.

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    stock SaveAccount playerid )
    {
        new 
    query 144 ] ;
        
    format querysizeof query"UPDATE `users` SET `pAdmin` = '%d', `Money` = '%d'  WHERE `pID` = '%d' LIMIT 1",
        
    PlayerInfo playerid ] [ pAdmin ],
        
    PlayerInfo playerid ] [ pMoney],
        
    PlayerInfo playerid ] [ ID ] ) ;
        
    mysql_function_query dbHandlequeryfalse"""" ) ;
        return 
    1;

    Только название столбцов и переменных я от балды взял

  7. #7
    Аватар для Trane911
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.10.2013
    Сообщений
    66
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    stock SaveAccount playerid )
    {
        new 
    query 144 ] ;
        
    format querysizeof query"UPDATE `users` SET `pAdmin` = '%d', `Money` = '%d'  WHERE `pID` = '%d' LIMIT 1",
        
    PlayerInfo playerid ] [ pAdmin ],
        
    PlayerInfo playerid ] [ pMoney],
        
    PlayerInfo playerid ] [ ID ] ) ;
        
    mysql_function_query dbHandlequeryfalse"""" ) ;
        return 
    1;

    Только название столбцов и переменных я от балды взял
    Что-то все равно не получилось... Не сохранились данные...

  8. #8
    Аватар для Trane911
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.10.2013
    Сообщений
    66
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    stock SaveAccount playerid )
    {
        new 
    query 144 ] ;
        
    format querysizeof query"UPDATE `users` SET `pAdmin` = '%d', `Money` = '%d'  WHERE `pID` = '%d' LIMIT 1",
        
    PlayerInfo playerid ] [ pAdmin ],
        
    PlayerInfo playerid ] [ pMoney],
        
    PlayerInfo playerid ] [ ID ] ) ;
        
    mysql_function_query dbHandlequeryfalse"""" ) ;
        return 
    1;

    Только название столбцов и переменных я от балды взял
    В чем еще может быть проблема? Переменные в моде и в БД одинаково записаны... Может быть через скайп проще будет?

  9. #9
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Trane911 Посмотреть сообщение
    В чем еще может быть проблема? Переменные в моде и в БД одинаково записаны... Может быть через скайп проще будет?
    Ты заменил то, что написал я, на свои данные? Название столбцов и т.п.? Судя по структуре БД, должно быть так
    PHP код:
    stock SaveAccount playerid )
    {
        new 
    query 144 ] ;
        
    format querysizeof query"UPDATE `users` SET `age` = '%d', `pAdmin` = '%d'  WHERE `id` = '%d' LIMIT 1",
        
    переменная возраста,
        
    PlayerInfo playerid ] [ pAdmin ],
        
    PlayerInfo playerid ] [ ID ]) ;
        
    mysql_function_query dbHandlequeryfalse"""" ) ;
        return 
    1;

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. #10
    Аватар для Trane911
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.10.2013
    Сообщений
    66
    Репутация:
    1 ±
    Спасибо, DeimoS, помог, теперь я разобрался с сохранением.

    Модераторы закройте тему!

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •