Перейти к публикации
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.

SQL код в html

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

Вопрос к программистам sql

 

каким образом преобразовать sql запрос к БД:

 

 

        if( count($data['topic_data']) )
       {
           $reps = array();
           $tids = array_keys( $data['topic_data'] );

           $this->DB->build( array(
               'select'   => 'rc.rep_points',
               'from'     => array('reputation_cache' => 'rc'),
               'add_join' => array(
                   0 => array(
                       'select' => 'p.topic_id',
                       'from'   => array('posts' => 'p'),
                       'where'  => 'rc.type_id=p.pid',
                       'type'   => 'inner',
                   ),
               ),
               'where'    => 'p.topic_id IN ('.implode(',', $tids).') AND rc.app="forums"',
               'group'    => 'p.topic_id',
               'order'    => 'p.pid ASC',
           ) );

           $this->DB->execute();

           while( $row = $this->DB->fetch() )
           {
               $reps[ $row['topic_id'] ] = $row['rep_points'];
           }

           foreach( $tids as $v )
           {
               $data['topic_data'][$v]['rep_firstpost'] = ( $reps[$v] ) ? $reps[$v] : 0;
           }
       }

 

 

(благодарность за код siv1987)

 

в вариант для вставки в html (шаблон страницы IP.Content) По примеру кода-запроса к БД

 

 

 

<if test="intval($record['record_topicid'])">
<if test="($forum = $this->DB->buildAndFetch( array('select' => 'f.id, f.name, f.name_seo', 'from' => array('forums' => 'f'), 'where' => 'f.id=t.forum_id', 'add_join' => array( array('from' => array('topics' => 't'), 'where' => 't.tid='.$record['record_topicid'])))))!==FALSE">
{$forum['name']}
</if>
</if>

 

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

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

 

<php>
$_data = $this->DB->buildAndFetch( array(
'select' => 'p.topic_id',
'from'   => array('posts' => 'p'), 
'where'  => 'p.topic_id='.$record['record_topicid'].' AND rc.type="pid"';
'add_join' => array( 
	array(
		'select' => 'rc.rep_points',
		'from'   => array('reputation_cache' => 'rc'), 
		'where'  => 'rc.type_id=p.pid';
	)
)
);
</php>

 

Вроде бы все верно, что то подобное и хотел сконструировать... но от чего то выдается синтаксическая ошибка со ссылкой на page.php ip.content`а

 

[Tue Jan 22 17:22:44 2013] [error] [client 12.222.54.132] PHP Parse error:  syntax error, unexpected ';', expecting ')' in /var/www/gogo/data/www/***.ru/forums/admin/applications_addon/ips/ccs/sources/pages.php(419) : eval()'d code on line 2343

[Tue Jan 22 17:22:44 2013] [error] [client 12.222.54.132] PHP Fatal error:  Class 'skin_ccs' not found in /var/www/gogo/data/www/***.ru/forums/admin/applications_addon/ips/ccs/sources/pages.php on line 421

[Tue Jan 22 17:22:44 2013] [error] [client 12.222.54.132] PHP Parse error:  syntax error, unexpected ';', expecting ')' in /var/www/gogo/data/www/***.ru/forums/admin/applications_addon/ips/ccs/sources/pages.php(419) : eval()'d code on line 2343, referer: http://***.ru/

[Tue Jan 22 17:22:44 2013] [error] [client 12.222.54.132] PHP Fatal error:  Class 'skin_ccs' not found in /var/www/gogo/data/www/***.ru/forums/admin/applications_addon/ips/ccs/sources/pages.php on line 421, referer: http://***.ru/

 

строка 419 page.php

 

	419.	eval( $skinFile['cache_content'] );

	421.		$this->registry->output->compiled_templates['skin_ccs']	= new skin_ccs( $this->registry );
	}
}

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

'rc.type_id=p.pid';

AND rc.type="pid"';

 

; в конце замените на ,

 

А ); замените на ));

Там не хватает одной скобки.

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

 

'rc.type_id=p.pid';

";" в конце замените на ","

 

 

Белый экран и все та же ошибка в логах. Не помогает.

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

Оригинальный запрос исправлен. Скопируйте еще раз.

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

Синтаксис верный, результатов нет.. :( Спасибо, вам @siv1987, за помощь, и так уже достал просьбами.

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

Покажите результат кода print_r( $record );

В шаблоне где вы вставляете запрос к бд

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

Покажите результат кода <php>print_r( $record );</php>

В шаблоне где вы вставляете запрос к бд

 

Был неправ. Подтянулась репутация, но только для первого продвинутого поста на главную ccs, остальные выдвинутые без репы.

 

[primary_id_field] => 39 
[member_id] => 2 
[record_saved] => 1358746186 
[record_updated] => 1358746186 
[rating_real] => 0 
[rating_hits] => 0 
[rating_value] => 0 
[category_id] => 1 
[record_locked] => 0 
[record_comments] => 0 
[record_views] => 1 
[record_approved] => 1 
[record_pinned] => 0 
[record_dynamic_furl] => a-vse-tak-horosho-nachinalos 
[record_static_furl] => 
[record_meta_keywords] => 
[record_meta_description] => 
[record_template] => 0 
[record_topicid] => 33 

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

Понял, подтягивает если есть репутация. При 0 не подтягивает, но это не принципиально. :rolleyes: обнял-расцеловал!

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

$_data['rep_points'] = intval( $_data['rep_points'] );

 

Добавить после sql запроса.

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

Теперь и с 0 работает. Гранд муррси!

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

$_data['rep_points'] = intval( $_data['rep_points'] );

 

Добавить после sql запроса.

 

Хмм...вчера с нулем рейтинг показывало, а сегодня чего то нет... Верно вставил?

 

$_data = $this->DB->buildAndFetch( array(
   'select' => 'p.topic_id',
   'from'   => array('posts' => 'p'), 
   'where'  => 'p.topic_id='.$record['record_topicid'].' AND rc.type="pid"',
   'add_join' => array( 
       array(
           'select' => 'rc.rep_points',
           'from'   => array('reputation_cache' => 'rc'), 
           'where'  => 'rc.type_id=p.pid',
       )
   )
) );
{$_data['rep_points'] = ( $_data['rep_points'] ) ? $_data['rep_points'] : 0;}

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

Фигурные скобки уберите, это php код. Они нужны только в html коде для обрамления переменных.

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

:unsure: все равно не показывает...

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

Сейчас на странице 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.