Помогите написать запрос - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > PHP

PHP Форум как для начинающих программистов на PHP так и для профессионалов этого дела. Если нужно создать скрипт, функцию и т.д, но не знаете как, спросите у нас и мы вам подскажем. Здесь вы найдете примеры скриптов которые вы сможете использовать на сайтах своих серверов (онлайн, регистрация, семь печатей, топ игроков). Так же много книг и статей.

Ответ
Опции темы
Непрочитано 09.10.2011, 20:59   #11
Аватар для DreamCast
Пользователь

По умолчанию Re: Помогите написать запрос

результатом заделись - интересно, что выйдет в итоге.
DreamCast вне форума Ответить с цитированием
Непрочитано 09.10.2011, 21:20   #12
Изгнанные

Автор темы (Топик Стартер) Re: Помогите написать запрос

Цитата:
Сообщение от DreamCast Посмотреть сообщение
нет возможности проверить, возможно, так будет работать тоже:
UPDATE character_subclasses SET class_index=(class_index+1)
WHERE charid=111
AND class_index=1
AND class_idexp=(SELECT class_idexp FROM character_subclasses WHERE charid=1111);

Добавлено через 2 минуты
точнее так)
UPDATE character_subclasses SET class_index=(SELECT MAX(class_index) FROM character_subclasses WHERE charid=1111)+1
WHERE charid=111
AND class_index=1
AND class_idexp=(SELECT class_idexp FROM character_subclasses WHERE charid=1111);
You can't specify target table 'character_subclasses' for update in FROM clause

Добавлено через 30 секунд
Цитата:
Сообщение от DreamCast Посмотреть сообщение
результатом заделись - интересно, что выйдет в итоге.
Естественно)) Пока додумываю свой метод.

Последний раз редактировалось Gambit_J; 09.10.2011 в 21:21. Причина: Добавлено сообщение
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием
Непрочитано 10.10.2011, 01:35   #13
Аватар для NotSpecified
Олдфаг

По умолчанию Re: Помогите написать запрос

По поводу You can't specify target table все верно ибо запрос составлен неправильно. Нельзя в одном запросе читать и изменять значения в одной таблице. Коллизия происходит и в итоге получаете эту ошибку.
NotSpecified вне форума Ответить с цитированием
Непрочитано 10.10.2011, 09:19   #14
Аватар для Azagthtot
Эксперт

По умолчанию Re: Помогите написать запрос

Простите, а написать не ЗАПРОС а SQL скрипт с использованием курсоров вам что-то мешает?
- создаете временную табличку для ИД
- делаете селект в курсор
- итерируете курсор, если находите запись подходящую под условия изменения, то заносите ее во временную таблицу
- делаете апдейт по основной таблице и временной
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Непрочитано 10.10.2011, 12:10   #15
Изгнанные

Автор темы (Топик Стартер) Re: Помогите написать запрос

Цитата:
Сообщение от Azagthtot Посмотреть сообщение
Простите, а написать не ЗАПРОС а SQL скрипт с использованием курсоров вам что-то мешает?
- создаете временную табличку для ИД
- делаете селект в курсор
- итерируете курсор, если находите запись подходящую под условия изменения, то заносите ее во временную таблицу
- делаете апдейт по основной таблице и временной
Курсор я так понимаю это типо mysql_result($запрос, 0, 1) ?

Я вчера ночью так и сделал все, но проблема в сортировки. Все ставиться ни там где надо, мускул произвольно вывод делает,а не по порядку записей. Но сегодня с сортировкой сделаю, добавлю столбец по ИД, посмарю что получиться.

Добавлено через 8 минут
Если оставить лишь 3 записи с одинаковыми обж_ид, а ост удалить, то все верно расставляеться. Вобщем буду сортировку ставить)

Последний раз редактировалось Gambit_J; 10.10.2011 в 12:19. Причина: Добавлено сообщение
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием
Непрочитано 10.10.2011, 12:26   #16
Аватар для Azagthtot
Эксперт

По умолчанию Re: Помогите написать запрос

курсор - это
DECLARE cur1 CURSOR FOR SELECT .... FROM zz;
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 10.10.2011, 12:31   #17
Изгнанные

Автор темы (Топик Стартер) Re: Помогите написать запрос

Цитата:
Сообщение от Azagthtot Посмотреть сообщение
курсор - это
DECLARE cur1 CURSOR FOR SELECT .... FROM zz;
Спасибо, такой первый раз вижу, так как на стадии учения Буду пробывать.

Добавлено через 1 час 17 минут
Примерно понял для чего нужен ДЕКЛАР, но до конца не могу вьехать как сделать то, что мне надо. Ни где нет нормального объяснения как правельно составить этот SQL скрипт (синтаксис). Если не сложно н аживом примере покажи пожалуйста.

Добавлено через 4 часа 14 минут
Всем спасибо кто помогал, короче сделал так:

PHP код:
//макс кол-во выполнения цикла (от кол-во записей)
$max_char mysql_query("SELECT COUNT(*) FROM character_subclasses");
$Rmax_char mysql_result($max_char0);

//изымаем чар_ид фулл
$char_main mysql_query("SELECT charId FROM character_subclasses ORDER BY id");

//создаем цикл выполнения обновлений
for ($i 0$i <= $Rmax_char-1$i++) {
$chars mysql_query("SELECT class_id FROM character_subclasses WHERE charId='".@mysql_result($char_main$i)."'");
mysql_query("UPDATE character_subclasses SET class_index='1' WHERE charId='".@mysql_result($char_main$i)."' AND class_id='".@mysql_result($chars00)."'");
mysql_query("UPDATE character_subclasses SET class_index='2' WHERE charId='".@mysql_result($char_main$i)."' AND class_id='".@mysql_result($chars10)."'");
mysql_query("UPDATE character_subclasses SET class_index='3' WHERE charId='".@mysql_result($char_main$i)."' AND class_id='".@mysql_result($chars20)."'");


Последний раз редактировалось Gambit_J; 10.10.2011 в 16:45. Причина: Добавлено сообщение
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос в БД cjhrxS Lineage II 12 05.08.2011 23:01
Статья о том как можно написать по русски с цветами без всяких програм FlooderaS Клиент 4 05.07.2010 11:17
помогите написать скрипты на сайт MaRiO Документация 6 24.03.2010 12:39
SQL запрос Xrust Lineage II 5 04.08.2009 14:09
Как правильно написать новый модуль под ребилион? zasov Движки сайтов (CMS) 0 09.12.2008 18:40


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 22:44. Часовой пояс GMT +3.

Вверх