Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Изменение пути к ячейке в mysql

Опубликовано:

Добрый день.

Создал дополнительное поле в профиле и регистрации, содержание его находится в таблице pfields_content и ячейке field_4. Необходимо изменить путь этого поля в таблицу members, ячейку field_4(создано). Сам убил много времени, но на так ничего не вышло. Насколько я понял, нужно добавить добавить дополнительный параметр специально для field_4 и изменить несколько .php файлов, прошу подробнее разъяснить что и где.

Рекомендованные сообщения

Опубликовано:

Переписать полфорума. А ради чего? Вы не знаете про JOIN statements? Или что?

Опубликовано:
  • Автор

Переписать полфорума. А ради чего? Вы не знаете про JOIN statements? Или что?

Можно подробнее про JOIN statements? Как я понял, это и есть сложные mysql запросы, я это переделывал в самой системе авторизации, но бесполезно. Можно показать на моём примере?

Ради чего?

Имеется игровой сервер с авторизацией, он берет логин, пароль и т.д. из таблицы members, но в самой игре поддерживается логин только с англ букв, сама система авторизации написана на java + php, сложные mysql запросы(в одном запросе коннект сразу в две таблицы) не работают.

Изменено пользователем nf1975

Опубликовано:

http://ru.wikipedia.org/wiki/Join_(SQL)

 

сложные mysql запросы(в одном запросе коннект сразу в две таблицы) не работают.

Просто вы их не умеете готовить. Запрос данных из двух таблиц это еще не сложные запросы.

Опубликовано:
  • Автор

http://ru.wikipedia.org/wiki/Join_(SQL)

 

 

Просто вы их не умеете готовить. Запрос данных из двух таблиц это еще не сложные запросы.

Они так называются, там необходимо было переделать пару строк, после этого всё авторизуется но в самой java при обновлении обрыв.

Опубликовано:

Ну используйте тогда простые запросы, если у вас "сложные" не получается составить. Переписать пол форума ради того, чтобы не юзать джоинов, или не делать один доп запрос - полный абсурд.

Опубликовано:
  • Автор

Ну используйте тогда простые запросы, если у вас "сложные" не получается составить. Переписать пол форума ради того, чтобы не юзать джоинов, или не делать один доп запрос - полный абсурд.

Повторяю, сложные запросы составлены правильно, проблема в самой java, как исправить там я вообще не понимаю, тут не нужно переписывать весь форум, меньше 15 файлов, я просто просил помощи указать как и какие файлы и строки именно.

Опубликовано:

Повторяю, сложные запросы составлены правильно, проблема в самой java

Обратитесь к специалистом по джаве, зачем заниматся говнокодингом в форуме, который заранее обречен на провал? Вам же говорят - нужно переписать пол форума, т.е. это так просто не делается. Тем более вам, судя по просьбе "подсказать" как и какие именно файлы.

Опубликовано:

1. Если у вас форум - ведущий, а игра - ведомая, то просто задайте в настройках форума ограничения набора допустимых для ника символов. Разрешите только латницу - и дело с концом, можно смело брать форумные логины.

 

2. Если у вас не такая схема, а пользователь сам создает (задает?) и меняет свой аккаунт в игре по отношению к постоянному аккаунту форума, но, пожалуй, действительно, удобнее всего использовать дополнительное поле профиля. Выбирать поля можно и в один запрос, без дозапросов из других таблиц. Просто используйте join (могли бы и нагуглить, что это):

SELECT m.name, m.email, m.members_pass_hash, m.members_pass_salt, p.field_4 FROM members m LEFT JOIN pfields_content p ON p.member_id = m.member_id WHERE m.email = '123@456.78' AND p.field_4 = 'vasya';

 

Вы, кстати, в курсе, что у IPB не простой, а хитро подсоленный md5 для паролей используется?

 

3. Если запрос ваша игра может сделать только один и только к одной таблице, пишите отдельный хук. Дополните табличку members дополнительными полями с данными игрового аккаунта и добавьте интерфейс к панели пользователя с управлением аккаунтом. Необходимый API для этого существует.

 

Беспроблемно переписать систему дополнительных полей форума у вас не получится. Это потребует действительно большой работы и длительной отладки, а не "пару строк поменять". Зато любой из описанных вариантов решит вашу задачу. Вот только, судя по контексту, вы, увы, не разбираетесь ни в PHP, ни в JAVA...

Опубликовано:
  • Автор

Спасибо за хорошо изложенный ответ. С java я действительно только недавно начал работать, в php всё отлично, авторизация у меня отлично работает только с англ никами, на счёт хеша я знаю(md5(md5($salt).md5($password));)

Попробую вашим способ, т.к. я пытался сделать так:

mysql_query("Select $db_columnUser From $db_table, $db_table2 Where $db_columnUser='$user' And $db_columnServer='$serverid'") ;

где columnUser в db_table2, но java не хотела корректно воспринимать этот запрос, возможно ваш метод поможет.

 

Обратитесь к специалистом по джаве, зачем заниматся говнокодингом в форуме, который заранее обречен на провал? Вам же говорят - нужно переписать пол форума, т.е. это так просто не делается. Тем более вам, судя по просьбе "подсказать" как и какие именно файлы.

В сам код IPB я никогда раньше глубоко не лез, к примеру в DLE это делалось очень просто, как и в joomla, в самом движке я нашел несколько файлов, в которых есть название этой таблицы и ячейки, я считал, что здесь будет проще, но раз необходимо переписывать весь форум - буду копать со стороны скрипта.

Опубликовано:

Разрешите только латницу - и дело с концом, можно смело брать форумные логины

Так вот значит к чему здесь "логин и пароль". А я все голову ломал, причем тут система авторизации и дополнительное поле. Автор хочет его использовать как логин к игре. @nf1975, как нужно правильно задавать вопросы.

 

ТС, а если там окажутся два пользователя с одинаковыми именами? Ведь дополнительные поля не считаются уникальными полями.

Опубликовано:
  • Автор

Так вот значит к чему здесь "логин и пароль". А я все голову ломал, причем тут система авторизации и дополнительное поле. Автор хочет его использовать как логин к игре. @nf1975, как нужно правильно задавать вопросы.

 

ТС, а если там окажутся два пользователя с одинаковыми именами? Ведь дополнительные поля не считаются уникальными полями.

Хм, над этим не подумал, возможно сделаю для авторизации вместо логина - мыло или действительно только латиницу разрешу использовать в логине.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.