Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Возникла ошибка - 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 ''ignore') VALUES ('28', '2', '123', 'нет', '7', 'A1', 'E7', 'F10', 'W1', '', 'D5' at line 1
Добавлял переменные по одному и на последнем дает ошибку.
$result = mysql_query ("INSERT INTO craftart_cost (id_art, id_user, cost, prim, treb_level, air, earth, fire, water, nature, defence, craft_prim, ignore) VALUES ('$id_art', '$id_user', '$cost', '$prim', '$treb_level', '$air', '$earth', '$fire', '$water', '$nature', '$defence', '$craft_prim', '$ignore')"); - так дает ошибку
$result = mysql_query ("INSERT INTO craftart_cost (id_art, id_user, cost, prim, treb_level, air, earth, fire, water, nature, defence, craft_prim) VALUES ('$id_art', '$id_user', '$cost', '$prim', '$treb_level', '$air', '$earth', '$fire', '$water', '$nature', '$defence', '$craft_prim')"); - а так все нормально
Неактивен
IGNORE ключевое слово, его нельзя без обратных кавычек
Неактивен
Большое спасибо
rgbeast написал:
IGNORE ключевое слово, его нельзя без обратных кавычек
$result = mysql_query ("INSERT INTO craftart_cost (`id_art`, `id_user`, `cost`, `prim`, `treb_level`, `air`, `earth`, `fire`, `water`, `nature`, `defence`, `craft_prim`, `ignore`) VALUES ('$id_art', '$id_user', '$cost', '$prim', '$treb_level', '$air', '$earth', '$fire', '$water', '$nature', '$defence', '$craft_prim', '$ignore')");
Неактивен
Подскажите пожалуста где тут ошибка!!
Неактивен
Вы бы хоть саму ошибку написали, чтоли
Неактивен
Вот ошибка!!
SQL Error: 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 at /home/p7410/www/clanwar.3dgaming.org.ua/classes/modules/clans/mapper/Clans.mapper.class.php line 682
Array ( => 1064 [message] => 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 [query] => UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = 'asd' [context] => /home/p7410/www/clanwar.3dgaming.org.ua/classes/modules/clans/mapper/Clans.mapper.class.php line 682 )
Неактивен
А при чём здесь структуры таблиц?
Ведь ясно написано: ошибка синтаксиса возле "05, victories = victories + 1, effectiveness = 100 / all_games * vic".
Сам запрос-то где? Ошибка в нём в указанном месте.
Неактивен
Запрос к БД я написал в 1 сообщенее!! просто когда я использую 1-ну из функция етого запроса - выбивает ошибку, которую я написал ниже! И прошу помощи ее решения!!! Я сначала думал что проблема состоит в Utf, а когда все переписал понял что ето проблема в БД! Возможно версия MSql не подходит! Впрочем, помогите кто знает как ето решить!!!
Неактивен
В ошибочном запросе присутствует следующий фрагмент: "05, victories = victories + 1, effectiveness = 100 / all_games * vic". Теперь найдите этот фрагмент в первом сообщении... его просто нет, Вы привели структуру таблиц.
В сообщении об ошибке ведь всё написано: и участок запроса с ошибкой, и скрипт, который вызвал ошибку, и даже номер строки, на которой выполнялся данный запрос.
Неактивен
Neval написал:
В сообщении об ошибке ведь всё написано: и участок запроса с ошибкой, и скрипт, который вызвал ошибку, и даже номер строки, на которой выполнялся данный запрос.
И именно опираясь на номер строки, реально найти ошибку.
Проще всего, думаю, вывести на экран сам запрос, после Добавьте инструкцию print ЗАПРОС; в нужном месте (сразу после того, как запрос полностью сформировался) и приведите вывод этой инструкции сюда. Или, если не получается, приложите сюда в аттаче файл /home/p7410/www/clanwar.3dgaming.org.ua/classes/modules/clans/mapper/Clans.mapper.class.php
Неактивен
`victories` int(10) unsigned DEFAULT '0' вот запрос и з таблицы где ето происходит! но когда я его исправляю - он вобще не работает!!!!
Неактивен
вот строка в которой выбивает ошибку! я его подчиркнул!
{
return true;
}
return null;
}
public function WarSetWin($id_war, $name_clan_win, $name_clan_lost, $back = false)
{
$sql = 'UPDATE '.DB_TABLE_CLANS.'
SET
all_games = all_games + 1,
rating = rating + '.RATING_UP_WHEN_VICTORY.',
victories = victories + 1,
effectiveness = 100 / all_games * victories
WHERE
name_url = ?';
if(!$this->oDb->query($sql, $name_clan_win))
{
return false;
}
$sql = 'UPDATE '.DB_TABLE_CLANS.'
SET
all_games = all_games + 1,
rating = rating - '.RATING_DOWN_WHEN_LESION.',
lesions = lesions + 1,
effectiveness = 100 / all_games * victories
WHERE
name_url = ?';
if(!$this->oDb->query($sql, $name_clan_lost))
{
return false;
}
$sql = 'UPDATE '.DB_TABLE_CLANS_WARS.'
SET
win_clan_name = ?
WHERE
id = ?'.($back ? NULL : ' AND win_clan_name IS NULL');
if($this->oDb->query($sql, $name_clan_win, $id_war))
{
return true;
}
return false;
}
public function WarResetWin($id_war, $name_clan_win, $name_clan_lost)
{
$sql = 'UPDATE '.DB_TABLE_CLANS.'
SET
all_games = all_games - 1,
rating = rating - '.RATING_UP_WHEN_VICTORY.',
victories = victories - 1,
effectiveness = 100 / all_games * victories
WHERE
name_url = ?';
if(!$this->oDb->query($sql, $name_clan_win))
{
return false;
}
$sql = 'UPDATE '.DB_TABLE_CLANS.'
SET
all_games = all_games - 1,
rating = rating + '.RATING_DOWN_WHEN_LESION.',
lesions = lesions - 1,
effectiveness = 100 / all_games * victories
WHERE
name_url = ?';
if(!$this->oDb->query($sql, $name_clan_lost))
{
return false;
}
return true;
}
Отредактированно SlavaFlash (29.05.2011 23:15:03)
Неактивен
Хорошо, теперь добавьте после
$sql = 'UPDATE '.DB_TABLE_CLANS.'
SET
all_games = all_games + 1,
rating = rating + '.RATING_UP_WHEN_VICTORY.',
victories = victories + 1,
effectiveness = 100 / all_games * victories
WHERE
name_url = ?';
строчку
print $sql."<br />";
и пришлите ее вывод сюда.
Неактивен
а где етот вывод нада смотреть! я немножко не понял..... я добавил и сделал тот запрос от каторого у меня ошибка, но пишет тоже самое что я написал во 2 -м сообщение!!
Неактивен
Вот ее вывод!!
UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = ?
SQL Error: 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 at /home/p7410/www//classes/modules/clans/mapper/Clans.mapper.class.php line 683
Array ( => 1064 [message] => 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 '05, victories = victories + 1, effectiveness = 100 / all_games * vic' at line 4 [query] => UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = 'tset1' [context] => /home/p7410/www//classes/modules/clans/mapper/Clans.mapper.class.php line 683 )
Неактивен
UPDATE prefix_clans SET all_games = all_games + 1, rating = rating + 0,05, victories = victories + 1, effectiveness = 100 / all_games * victories WHERE name_url = ?
Этот запрос некорректно составлен - не должно быть инструкции "name_url = ?".
Вместо вопросительного знака должно быть подставлено строковое значение.
Думаю, что-то вроде " name_url='http://mail.ru' ".
Отредактированно deadka (29.05.2011 23:34:57)
Неактивен
после етого ошибку начало вот злесь выбивать
$sql = 'UPDATE '.DB_TABLE_CLANS_WARS.'
Неактивен
Приведенная Вами конструкция вообще не похожа нa sql-запрос. Кто и какую ошибку выдаёт?
Неактивен
Вот где!!!
CREATE TABLE IF NOT EXISTS `prefix_clans` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`owner_id` int(10) unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`name_url` varchar(255) NOT NULL,
`people` varchar(255) NOT NULL,
`people_count` int(10) unsigned NOT NULL,
`description` varchar(255) NOT NULL,
`reg_date` date NOT NULL,
`avator` varchar(255) NOT NULL,
`url_home_page` varchar(255) NOT NULL,
`status` tinyint(1) NOT NULL,
`bannedtime` datetime NOT NULL,
`rating` decimal(10,3) NOT NULL,
`lesions` int(10) unsigned DEFAULT '0',
`victories` int(10) unsigned DEFAULT '0',
`all_games` int(10) unsigned zerofill DEFAULT '0000000000',
`effectiveness` decimal(10,3) NOT NULL DEFAULT '0.000',
`win_clan_name` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=2 ;
Неактивен
Брр, сколько обсуждения. «0,05» — это не число. Это два числа, разделенных
запятой. А нужно писать «0.05» для дробного числа.
Ну и проблема не в победах, а в рейтинге.
Неактивен
СПс!!
Неактивен
Страниц: 1