форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
mad@Max
Эксперт
 
mad@Max's Avatar
Default Запрос к бд
0

Как переменной $xxx присвоить запрос:
PHP Code:
SELECT threadid
FROM vb_thread
WHERE 
(
title "тема"
)
AND (
firstpostid "ид автора"

Так чтобы переменная обрабатывалась на всем форуме. Пробовал сделать через модульную систему, но что то не получается.
Помогите пожалуйста
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
1

Причем тут переменная? Чтобы скрипт был доступен на всем форуме добавляйте его в global_start и все...
 
 
mad@Max
Эксперт
 
mad@Max's Avatar
Default
0

Sellrion, так, хорошо, добавил скрипт типа:
PHP Code:
$xxx $vbulletin->db->query_first("SELECT threadid FROM " TABLE_PREFIX "thread WHERE (title = "тема") AND (firstpostid = "1")); 
в global_start.
Как сделать, чтобы если я эту переменную напишу в каком нибудь шаблоне, чтобы она выдавала число?
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
0

1. Создайте файл с вашим кодом.
2. Панель администратора -> Модули и Продукты -> Добавить новый модуль:

Продукт: имя продукта
Местоположение: Если Вы хотите чтобы Ваш код мог отображаться на всех страницах форума, то ставим global_start
Заголовок: Ваш заголовок
Порядок выполнения: 5
Код PHP модуля:
PHP Code:
ob_start(); 
include(
'http://путь/file.php'); 
$переменная ob_get_contents(); 
ob_end_clean(); 
Модуль включен = да

3. Вставляете Вашу переменную в шаблон.

Last edited by Sellrion : 12-03-2007 at 10:42 PM.
 
 
mad@Max
Эксперт
 
mad@Max's Avatar
Default
0

Sellrion, таак, продвигаюсь к пониманию
Скрипт парсится, но выдает сам запрос вместо числа. Т.е. это:
PHP Code:
$vbulletin->db->query_first("SELECT threadid FROM " TABLE_PREFIX "thread WHERE (title = "тема") AND (firstpostid = "1")); 
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
0

Quote:
Originally Posted by maddogmax View Post
$vbulletin->db->query_first
Что бы вот ЭТО сработало Вы должны в своем php файле инициализировать global.php, т.е.:
PHP Code:
require_once('./global.php'); 
Далее после запроса вставьте что-то вроде:
PHP Code:
echo $xxx
Должно получиться...
 
 
g0rn
Гуру
Default
0

maddogmax, экранируй кавычки, странно, что он тебе не выдал ошибку синтаксиса

Sellrion, да по идее не надо глобал подключать, хук вызывается в файле, там он уже подключен. Ну если этот хук не в классе, типа хука на postbit_*. Там надо использовать $this->registry->...
 
 
mad@Max
Эксперт
 
mad@Max's Avatar
Default
0

Sellrion, таак, вот код php файла:
PHP Code:
require_once('./global.php'); 
$vbulletin->db->query_first("SELECT threadid FROM vb_thread WHERE (title = "Флуд") AND (firstpostid = "1"));
echo 
$floodt
Вот код модуля:
PHP Code:
ob_start(); 
include(
'./floodt.php'); 
$floodt ob_get_contents(); 
ob_end_clean(); 
А вот результат вызова переменной:
PHP Code:
require_once('./global.php'); $vbulletin->db->query_first("SELECT threadid FROM vb_thread WHERE (title = "Флуд") AND (firstpostid = "1")); echo $floodt
Что я делаю не так?

Добавлено через 2 минуты
g0rn, ну запрос то работает, я проверял

Last edited by mad@Max : 12-03-2007 at 11:00 PM. Reason: Добавлено сообщение
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
0

maddogmax, дак вы результат поиска должны присвоить переменной, т.е.:
PHP Code:
require_once('./global.php'); 
$floodt $vbulletin->db->query_first("SELECT threadid FROM vb_thread WHERE (title = "Флуд") AND (firstpostid = "1"));
echo 
$floodt
Если не получится попытайтесь echo $floodt; заменить на $floodt[pagetext]. Кстати g0rn прав, возможно Вам придется использовать $this->registry...

Last edited by Sellrion : 12-03-2007 at 11:06 PM.
 
 
g0rn
Гуру
Default
0

Quote:
Originally Posted by maddogmax View Post
g0rn, ну запрос то работает, я проверял
Запрос-то работает, вот только при вставке его в php код ты не проэкранировал кавычки.
Должно быть так -
PHP Code:
$vbulletin->db->query_first("SELECT threadid FROM vb_thread WHERE title = \"Флуд\" AND firstpostid=1); 
(число заключать в кавычки смысла нет, лишние скобки ставить тоже).
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 10:59 AM.


Powered by vBulletin® Version Frozen Edition
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...