Перейти к содержимому

Реферальная программа Мегаплана


  • Закрытая тема Тема закрыта

При выполнении запроса выдает ошибку #1064

#1 Riko_s

Riko_s
  • Пользователь
  • 18 сообщений
  • Репутация: 0
0

Отправлено 19 Август 2015 - 10:18

При выполнении запроса выдает ошибку 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`statistics_all_damage_dealt`,
                                  `statistics_all_shots`,
                                  `st' at line 11 
 

Сам запрос:

 INSERT INTO wb_userdata(data_update,
 account_id,
 last_battle_time,
 created_at,
 updated_at,
 statistics_frags,
 statistics_all_hits,
 statistics_all_wins,
 statistics_all_losses,
 statistics_all_battles
 statistics_all_damage_dealt,
 statistics_all_shots,
 statistics_all_xp,
 statistics_all_survived_battles,
 statistics_max_xp
) 
VALUES ('$data_update',
'$search_user_id',
'$last_battle_time',
'$created_at',
'$updated_at',
'$statistics_frags',
'$statistics_all_hits',
'$statistics_all_wins',
'$statistics_all_losses',
'$statistics_all_battles',
'$statistics_all_damage_dealt',
'$statistics_all_shots',
'$statistics_all_xp',
'$statistics_all_survived_battles',
'$statistics_max_xp'
) 

Помогите пожалуйста, в чем дело? Ну откуда там ошибка в 11 строке, она ведь не чем не отличается от остальных!


 

 

Сообщение отредактировал BLIK: 19 Август 2015 - 10:32

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Выдает ошибку syntax error, unexpected
  2. Ошибка при запросе к БД
  3. Скрипт выдает ошибки
  4. Почему рубрика выдает ошибку
  5. Не работает сайт выдает ошибку 503

#2 Info-Mans

Info-Mans
  • Пользователь
  • 1 174 сообщений
  • Репутация: 111

Отправлено 19 Август 2015 - 11:28

Если я не ошибаюсь, то #1064 это синтаксическая ошибка

 

Вот, что удалось нагуглить) Возможно поможет

 

http://sqlinfo.ru/ar...es/info/15.html


  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#3 1putnik

1putnik
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 05 Сентябрь 2015 - 00:36

@Riko_s, в конце 10 строки ( statistics_all_battles) запятой нет


  • 0

#4 Riko_s

Riko_s
    Topic Starter
  • Пользователь
  • 18 сообщений
  • Репутация: 0

Отправлено 05 Сентябрь 2015 - 10:35

@1putnik, поставил запятую, все равно скрипт из php писать не хочет, но в ручную в phpmyadmin пишется. 


  • 0

#5 1putnik

1putnik
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 05 Сентябрь 2015 - 13:45

@Riko_s, если таблица уже создана, то делать запрос нужно так

mysql_query(" INSERT INTO wb_userdata 
VALUES(
'".$data_update."',
'".$search_user_id."',
'".$last_battle_time."',
'".$created_at."',
'".$updated_at."',
'".$statistics_frags."',
'".$statistics_all_hits."',
'".$statistics_all_wins."',
'".$statistics_all_losses."',
'".$statistics_all_battles."',
'".$statistics_all_damage_dealt."',
'".$statistics_all_shots>."',
'".$statistics_all_xp."',
'".$statistics_all_survived_battles."',
'".$statistics_max_xp."'
)");

  • 0

#6 Riko_s

Riko_s
    Topic Starter
  • Пользователь
  • 18 сообщений
  • Репутация: 0

Отправлено 05 Сентябрь 2015 - 14:11


mysql_query(" INSERT INTO wb_userdata VALUES( '".$data_update."', '".$search_user_id."', '".$last_battle_time."', '".$created_at."', '".$updated_at."', '".$statistics_frags."', '".$statistics_all_hits."', '".$statistics_all_wins."', '".$statistics_all_losses."', '".$statistics_all_battles."', '".$statistics_all_damage_dealt."', '".$statistics_all_shots>."', '".$statistics_all_xp."', '".$statistics_all_survived_battles."', '".$statistics_max_xp."' )");
Вот мой код для добавления пользователя и его данных:
function user_add($user_name, $key) {
$p_sql = mysql_query("SELECT * FROM wb_user WHERE user_name = '$user_name'");
if (mysql_num_rows($p_sql) >  0) {
return 'redirect_user';
} else {
$search = json_decode(file_get_contents('https://api.worldofwarships.ru/wows/account/list/?application_id='.$key.'&search='.$user_name));
//echo '<pre>' . print_r($search, true) . '</pre>';
if ($search->meta->count > 0 ) {
$search_user_name = $search->data[0]->nickname;
$search_user_id = $search->data[0]->account_id;


$get = json_decode(file_get_contents('http://api.worldofwarships.ru/wows/account/info/?application_id='.$key.'&account_id='.$search_user_id));
$last_battle_time = $get->data->$user_id->last_battle_time;
$created_at = $get->data->$user_id->created_at;
$updated_at = $get->data->$user_id->updated_at;
$statistics_frags = $get->data->$user_id->statistics->pvp->frags;
$statistics_max_xp = $get->data->$user_id->statistics->pvp->max_xp;
    $statistics_distance = $get->data->$user_id->statistics->distance;
$statistics_all_wins = $get->data->$user_id->statistics->pvp->wins; 
$statistics_all_losses = $get->data->$user_id->statistics->pvp->losses; 
$statistics_all_battles = $get->data->$user_id->statistics->battles; 
$statistics_all_damage_dealt = $get->data->$user_id->statistics->pvp->damage_dealt; 
$statistics_all_shots = $get->data->$user_id->statistics->pvp->main_battery->shots; 
$statistics_all_hits = $get->data->$user_id->statistics->pvp->main_battery->hits; 
$statistics_all_xp = $get->data->$user_id->statistics->pvp->xp; 
$statistics_all_survived_battles = $get->data->$user_id->statistics->pvp->survived_battles; 


$data_update = date("Y-m-d H:i:s");


$ships_user = json_decode(file_get_contents('http://api.worldofwarships.ru/wows/ships/stats/?application_id=46cc5980e94e4d033c814e368efa22f4&account_id='.$id), true);
$ships_all = json_decode(file_get_contents('https://api.worldofwarships.ru/wows/encyclopedia/ships/?application_id=46cc5980e94e4d033c814e368efa22f4'), true);


$TIER = 0;
foreach ($ships_user['data'][$search_user_id] as $ship_value) {
$TIER += $ships_all['data'][$ship_value['tank_id']]['tier']*($ship_value['all']['battles']/$statistics_all_battles);
}
/*
DAMAGE – средний урон за бой,
TIER – средний уровень танков игрока,
FRAGS – среднее количество фрагов за бой,
SPOT – среднее количество обнаруженных врагов,
CAP – среднее количество очков захвата, 
DEF – среднее количество очков защиты базы за бой,
EXP – среднее количество опыта за бой.
*/


$DAMAGE = $statistics_all_damage_dealt/$statistics_all_battles;
$FRAGS = $statistics_frags/$statistics_all_battles;
$battles = $statistics_all_battles;
$EXP = $statistics_all_xp/$statistics_all_battles;
$WINRATE = $statistics_all_wins/$statistics_all_battles;


mysql_query("INSERT INTO wb_user_statistic(account_id, 
user_name,
win,
battles,
avg_xp,
avg_dmg
) VALUES 
('$search_user_id',
'$search_user_name',
'$WINRATE',
'$battles',
'$EXP',
'$DAMAGE'
)"
);


mysql_query("INSERT INTO wb_user(user_name,
user_id
) VALUES ('$search_user_name',
 '$search_user_id'
)"
);
mysql_query("INSERT INTO wb_userdata(data_update,
 `account_id`,
 `last_battle_time`,
 `created_at`,
 `updated_at`,
 `statistics_frags`,
 `statistics_all_hits`,
 `statistics_all_wins`,
 `statistics_all_losses`,
 `statistics_all_battles`,
 `statistics_all_damage_dealt`,
 `statistics_all_shots`,
 `statistics_all_xp`,
 `statistics_all_survived_battles`,
 `statistics_max_xp`
) 
VALUES ('$data_update',
'$search_user_id',
'$last_battle_time',
'$created_at',
'$updated_at',
'$statistics_frags',
'$statistics_all_hits',
'$statistics_all_wins',
'$statistics_all_losses',
'$statistics_all_battles',
'$statistics_all_damage_dealt',
'$statistics_all_shots',
'$statistics_all_xp',
'$statistics_all_survived_battles',
'$statistics_max_xp'
)"
);


return 'redirect_user';
} else {
return 'redirect_user_error';
};
};
};

Код что вы написали выше - это для обновления данных в таблице или для первого добавления?


  • 0

#7 Riko_s

Riko_s
    Topic Starter
  • Пользователь
  • 18 сообщений
  • Репутация: 0

Отправлено 05 Сентябрь 2015 - 14:28

4wows.ru/stats/ введите тут ник "Riko_s" и нажмите "Получить данные". Не пойму, где ошибка в коде? В ручную все запросы к mysql выполняются


  • 0

#8 1putnik

1putnik
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 05 Сентябрь 2015 - 14:38

@Riko_s, нет, это для заполнения новых полей в таблице.

Видел похожий код для заполнения новых полей, но там без mysql_query

А такой запрос у себя на сайте делал сам.

4wows.ru/stats/ введите тут ник "Riko_s" и нажмите "Получить данные". Не пойму, где ошибка в коде? В ручную все запросы к mysql выполняются

 

ЭТО УЖЕ ДРУГОЙ ВОПРОС


  • 0

#9 Riko_s

Riko_s
    Topic Starter
  • Пользователь
  • 18 сообщений
  • Репутация: 0

Отправлено 05 Сентябрь 2015 - 14:41

ЭТО УЖЕ ДРУГОЙ ВОПРОС
 

Я полагал что это из-за неправильного запроса к базе данных. Видимо нет.

Дело в том что тот-же код (с минимальными изменениями типа количества столбцов в таблице) успешно работает на моем первом сайте (blitzinfo.ru/stats/)


  • 0

#10 1putnik

1putnik
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 05 Сентябрь 2015 - 14:46

@Riko_s, О ЁЁ!

Так запрос не на добаление нового пользователя должен быть, а на извлечение данных уже зарегистрированного пользователя.


Сообщение отредактировал 1putnik: 05 Сентябрь 2015 - 14:55

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru