VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Привет. Надеюсь в правильный раздел запостил.
Вообщем хочу сделать дополнительную инфу для юзера, чтоб отображалась под аватаркой. Но проблема не в этом =) Проблема в том что эта инфа должна браться из соседней БД, по значению введенному юзером в доп поле.
Поясню на всякий случай ситуацию.
Юзер вводит в своем профиле (Там где биография, местоположение и т.д.) в доп поле цифру - свой ID. Под аватаркой у юзера должно выводиться например имя и количество очков (взятые из соседней БД по номеру его id) Реально такую штуку реализовать? =/
Добавлено:
Вообщем какие наброски...
Сначала надо приконектиЦЦа к базе... выбрать базу...
Code:
$link = mysql_connect("хост", "логин", "пасс") or die("Could not connect");
mysql_select_db("stat") or die("Could not select database");
Далее делаем запрос по параметру (5-ое доп поле в профиле) из нужной нам таблицы
Code:
$query = 'SELECT `info` FROM `id` WHERE `id`=\'$post['field5']\'';
И вот тут пока ступор... Ведь такая строчка не пройдёт? =\'$post['field5']\''; Или пройдёт?
Дальше запро подан и читаются данные
Code:
$result = mysql_query($query) or die("Query failed");
$row = mysql_fetch_row($result);
Ну и сопсно дальше никаких идей =((((
Добавлено через 7 часов 39 минут Хм... Дальше надо просто из нужных колонок забрать инфу... По уже найденой строчке... А вот как её забрать? =( И как реализовать вывод уже на форум не понимаю... По идее должно быть не сложно...
Неужели никто ничего не подскажет? =(
Last edited by Ross : 02-11-2007 at 11:08 AM.
Reason: Добавлено сообщение
Если обе базы на одном сервере, лучше раздать права юзеру читать из другой базы и таблицы и поля, а потом в нужных местах добавить к запросу join.
например showthread использует переменные $hook_query_joins и $hook_query_where для соединения дополнительных полей и таблиц, то есть тебе нужен плагин который изменяет лишь эти переменные, а инфа из другой базы сама подцепится. в шаблоне уже сразу можно будет выводить $post[myfield]
@Ross
Продвинутый
Join Date: Jul 2006
Location: Silent Hill
Posts: 66
Версия vB: 3.6.8
Reputation:
Опытный 12
Репутация в разделе: 0
0
Хммм... Вроде немного понял о чём ты... Но мне кажеться это сложнее. Ведь проще написать обычный мускульный запрос, да потом выводить данные. Или нет?
Просто я не понял про права юзерам на чтение другой базы.
Можешь хотяб как-нить навести? Просто подобных плагинов ни разу не видел. Или может знаешь где про енто можно почитать?
Просто очень надо да и самому охота разобраться =)
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 133
1
Проще, но неэффективно в плане нагрузки на сервер : получится сколько у тебя постов показывается, столько и соединений с базой и запросов.
Плагины посмотри в хаке, который что-нибудь выводит под ником каждого юзера(шаблон postbit). в vbpetz , например.
Про права я забей) cо временем поймешь.
@Ross
Продвинутый
Join Date: Jul 2006
Location: Silent Hill
Posts: 66
Версия vB: 3.6.8
Reputation:
Опытный 12
Репутация в разделе: 0
0
Во! Теперь вроде начал понимать. Щас буду эксперементировать =)
А про запросы ты прав. Я не подумал.
Думаю что ещё вопросы появятся. Но позже =)
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 133
0
я тут посморел , vbpetz - написан без join-ов. говно.
Добавлено через 18 минут vbjournal сойдет для примера :
<plugin active="1">
<title>vBJournal: Get Journal Info for Postbit</title>
<hookname>showthread_query</hookname>
<phpcode><![CDATA[
$hook_query_fields .= ', journals.journaldesc, journals.journal_id';
$hook_query_joins .= " LEFT JOIN " . TABLE_PREFIX . "journals AS journals ON (journals.journalist_id=post.userid)";
]]></phpcode>
</plugin>
Last edited by netwind : 02-11-2007 at 03:37 PM.
Reason: Добавлено сообщение
@Ross
Продвинутый
Join Date: Jul 2006
Location: Silent Hill
Posts: 66
Версия vB: 3.6.8
Reputation:
Опытный 12
Репутация в разделе: 0
0
$hook_query_fields .= ', journals.journaldesc, journals.journal_id';
Хм... Значит это он берет данные из таблицы journals и полей journaldesc и journal_id... Тока как его заставить смотреть другую базу? =)
Про joins не понял =( Кроме (journals.journalist_id=post.userid) тут он берет нужные данные по юзер ID, да?
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 133
0
3. изучай еще и sql
имя таблицы в другой базе можно указать через точку типа base.table as tbl
чтобы понять зачем эти три переменные, нужно посмотреть в код куда эти переменные
подставляются.
кстати там аж три переменных - указание дополнительных полей, указание доп таблиц и условие соединения, дополнительный фильтр в where (некоторые предпочитают в where писать условие соединения, в примере с vbjournal не так )
Last edited by netwind : 02-12-2007 at 05:32 PM.
@snark
Продвинутый
Join Date: Feb 2006
Location: Vault 13
Posts: 101
Версия vB: 3.6.5
Reputation:
Опытный 32
Репутация в разделе: 0
0
Quote:
Originally Posted by netwind
я тут посморел , vbpetz - написан без join-ов. говно.
а JOIN-ы и не всегда нужны ;) например топикстартеру вот этот, Ваш примерный запрос
Code:
$hook_query_fields .= ', journals.journaldesc, journals.journal_id';
$hook_query_joins .= " LEFT JOIN " . TABLE_PREFIX . "journals AS journals ON (journals.journalist_id=post.userid)";
ни разу не подойдет ;) у него ID должен вводится отдельно и он совсем != userid из таблицы post ;) так или иначе всеравно спасибо за подкинутую Вами идейку! самому надо реализовать нечто подобное, только мне надо будет сверять 2 поля в другой БД и даже скорее всего на другом сервере, так что посмотрим на что вобловский мускульный класс сгодится...
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 133
0
join можно делать по любому полю и не обязательно с одной таблицей.