Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Случайная картинка из альбома

Форум для авторов модов для phpBB 2.0.x.
ZhukovK
phpBB 1.0.0
Сообщения: 6
Стаж: 18 лет 4 месяца
Откуда: Киев

Случайная картинка из альбома

Сообщение ZhukovK »

Всем добрый день!!!
Нужен Ваш совет. с пхп "общаюсь" всего неделю, возможно от того такие вопросы и возникают.

Имеется сайт, написанный с использованием phpBB2 v 2.0.18, живет на IIS+MSDN. Установлены моды ezPortal+ Photo_album by Smartor.

Нашел описание, как размещать на страничке portal.php последнюю добавленную картинку, но мне нужно показывать случайную...

Нашел в файле portal.php запрос, который вытаскивает соответствующую запись из таблички phpbb_album, переписал его под свои нужды, из Query Analizer выполняется без проблем, выбирает случайную запись, а вот при запуске со странички - ничего не получается... смотрю в профайлер - вижу, что запрос на сервер БД приходит в том виде, что я написал... видимо что-то не получается с возвратом данных :-(

Declare @pic_id int
Declare @pic_t int
Declare @RandInd int
Declare @Counter int
SELECT @RandInd=cast(round(ROUND(RAND()*100,0)/(100/(Select count(pic_id)-1 from phpbb_album where pic_approval=1))+1,0) as integer)
Set @Counter=1
Declare cur cursor FOR
Select pic_id from phpbb_album where pic_approval=1
open Cur
FETCH NEXT FROM Cur into @pic_t
WHILE @@FETCH_STATUS = 0
BEGIN
if (@Counter=@RandInd) Set @pic_id=@pic_t
FETCH NEXT FROM Cur into @pic_t
Set @Counter=@Counter+1
END
CLOSE Cur
DEALLOCATE Cur
SELECT pic_id, pic_title, pic_username, pic_time FROM phpbb_album where pic_id=@pic_id

Вот собственно текст запроса
Что не так??? Почему возвращается пустая запись????
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

эм... а это пхп? 0_о
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ZhukovK
phpBB 1.0.0
Сообщения: 6
Стаж: 18 лет 4 месяца
Откуда: Киев

Сообщение ZhukovK »

Я прошу прощения, что не внес ясность. Конечно же это не пхп, это SQL запрос работает правильно, это однозначно. Но вот почему-то когда использую вот такую запись на пхп
$sql="......"; (......) - текст запроса приведенный в предидущем посте
if (!$Result=$db->sql_query($sql))
{
message_die(GENERAL_ERROR,'Could not query album information','',__Line__,__File__,$SQL);
}

$picrow=$db->sql_fetchrow($result);


И в итоге получаем $picrow['pic_id'] - пустое

Вобщем-то не факт, что нужно делать именно так, может кто-то подскажет, как в ezPortal отобразить СЛУЧАЙНУЮ картинку из галлереи????
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

все очень просто
if (!$Result=$db->sql_query($sql))
$picrow=$db->sql_fetchrow($result);

пхп это вам не паскаль... он чувствителен к регистру...
посему аналогично
message_die(GENERAL_ERROR,'Could not query album information','',__Line__,__File__,$SQL);
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ZhukovK
phpBB 1.0.0
Сообщения: 6
Стаж: 18 лет 4 месяца
Откуда: Киев

Сообщение ZhukovK »

Да нет, с этим порядок. Такой ошибки на страничке я не допустил. Проблема в том, что пхп не хочет работать с этим запросом. Сам з апрос выполняется их SQlAnalizer нормально. А из пхп не хочет :cry:
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

млин... я тебе показал на том куске кода ты привел твои ошибки... вот ты сначала их исправь... =) или показывай весь скрипт =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ZhukovK
phpBB 1.0.0
Сообщения: 6
Стаж: 18 лет 4 месяца
Откуда: Киев

Сообщение ZhukovK »

Portal.php

=======================
$sql = "Declare @pic_id int
Declare @pic_t int
Declare @RandInd int
Declare @Counter int
SELECT @RandInd=cast(round(ROUND(RAND()*100,0)/(100/(Select count(pic_id)-1 from phpbb_album where pic_approval=1))+1,0) as integer)
Set @Counter=1
Declare cur cursor FOR
Select pic_id from phpbb_album where pic_approval=1
open Cur
FETCH NEXT FROM Cur into @pic_t
WHILE @@FETCH_STATUS = 0
BEGIN
if (@Counter=@RandInd) Set @pic_id=@pic_t
FETCH NEXT FROM Cur into @pic_t
Set @Counter=@Counter+1
END
CLOSE Cur
DEALLOCATE Cur
SELECT pic_id, pic_title, pic_username, pic_time FROM phpbb_album where pic_id=@pic_id
";



if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Could not query album information', '', __LINE__, __FILE__, $sql);
}

$picrow = $db->sql_fetchrow($result);

.......................


$template->assign_vars(array(
'WELCOME_TEXT' => $CFG['welcome_text'],
'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
'TOTAL_TOPICS' => sprintf($lang['total_topics'], $total_topics),
'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'),
'L_FORUM' => $lang['Forum'],
'L_BOARD_NAVIGATION' => $lang['Board_navigation'],
'L_STATISTICS' => $lang['Statistics'],
'L_ANNOUNCEMENT' => $lang['Post_Announcement'],
'L_POSTED' => $lang['Posted'],
'L_COMMENTS' => $lang['Comments'],
'L_VIEW_COMMENTS' => $lang['View_comments'],
'L_POST_COMMENT' => $lang['Post_your_comment'],
'L_SEND_PASSWORD' => $lang['Forgotten_password'],
'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"),
'L_REGISTER_NEW_ACCOUNT' => sprintf($lang['Register_new_account'], '<a href="' . append_sid("profile.$phpEx?mode=register") . '">', '</a>'),
'L_REMEMBER_ME' => $lang['Remember_me'],
'L_VIEW_COMPLETE_LIST' => $lang['View_complete_list'],
'L_POLL' => $lang['Poll'],
'L_VOTE_BUTTON' => $lang['Vote'],
// Photo Album
'L_NEWEST_PIC' => $lang['Newest_pic'],
'PIC_IMAGE' => append_sid('album_thumbnail.'. $phpEx . '?pic_id=' . $picrow['pic_id']),
'PIC_TITLE' => $picrow['pic_title'],
'PIC_POSTER' => $picrow['pic_username'],
//'U_PIC_LINK' => append_sid('album_view.' . $phpEx . '?id=' . $picrow['pic_id']),
'U_PIC_LINK' => append_sid('album_pic.' . $phpEx . '?pic_id=' . $picrow['pic_id']),
'PIC_TIME' => create_date($board_config['default_dateformat'], $picrow['pic_time'], $board_config['board_timezone']),
// Welcome Avatar
'L_NAME_WELCOME' => $lang['Welcome'],
'U_NAME_LINK' => $name_link,
'AVATAR_IMG' => $avatar_img)
);

===========================

portal_body.tpl
===========================


<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr>
<td class="catHead" height="25"><span class="genmed"><b>{L_NEWEST_PIC}</b></span></td>
</tr>
<tr>
<td class="row1" align="left"><span class="gensmall" style="line-height:150%"><center><br /><br /><a href="{U_PIC_LINK}"><img src="{PIC_IMAGE}" border="0" alt="{L_NEWEST_PIC}"></a><br /></center><b>{PIC_TITLE}</b> àâòîð <b>{PIC_POSTER}</b><br />on {PIC_TIME}<br />&nbsp;</span></td>
</tr>
</table>
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

хм... ну по идее должно работать...
и все же я думаю, что стоит случайность делать средствами пхп, а не мускул
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ZhukovK
phpBB 1.0.0
Сообщения: 6
Стаж: 18 лет 4 месяца
Откуда: Киев

Сообщение ZhukovK »

Вы знаете, для меня не важно, как это сделать. Важно что б работало. С пхп я ещё не сильно дружен. Подскажите плизззз, как это сделать средствами пхп?????
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

я работал с файлами в папке.... но смысл один..

Код: Выделить всё

....
// Выбираем случайный файл
mt_srand((double)microtime() * 1000000);
$randval = mt_rand(0, sizeof($imgArray) - 1);

// Читаем файл
$file = $dir . $imgArray[$randval];
....
где $imgArray это массив со всеми файлами =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ZhukovK
phpBB 1.0.0
Сообщения: 6
Стаж: 18 лет 4 месяца
Откуда: Киев

Сообщение ZhukovK »

Проблема решена всё-таки средствами sql
К сожалению для себя, обнаружил что phpbb "понимает" только
select, update, insert. Пришлось писать функцию на tsql и использовать её в SELECT-е
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

можно подробней? =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y

Вернуться в «Для авторов (phpBB 2.0.x)»