BasePelleta

BasePelleta
Рейтинг
120
Регистрация
29.05.2008

Аргон-17,

благодарю!

Что-то не вижу

http://www.ikeafans.com/forums/clientscript/spc.js

а выводить с помощью скрипта не запрещается

Так, таким макаром можно скрыть принадлежность нескольких проектов одному человеку.

А что, в старых синхронных кода id издателя не публикуется?

А Вы откройте html-код и увидите, что там нет никакого намека на то, что подключен адсенс.

Вопрос, что это за метод включения кода адсенса http://www.ikeafans.com/forums/bedroom-closet/60537-ikea-pax-wardrobe-broken-back-panel.html

Куда исчез идентификатор в адсенсе?

Разве это не противоречит их правилам?

Вот так работает:

  $mass = $db->one_col_array("SELECT link_id FROM ".TBL_ARTICLE." WHERE catid=\"".$a_Ad['catid']."\"

AND bb_region_id IN (".get_cats($reg_id, RegTable('Regions','category')).") ");

shuffle($mass); //Это перемешает массив.

//Потом выбираем ID
$tmp = array_slice($mass, 0, 3);

//Теперь через запятую их складываем
$zap=implode(',',$tmp);

$ql = 'SELECT link_id AS o_id,'.$TITLE_FIELD.' AS o_title, images AS o_images, bb_descr AS o_descr FROM '.TBL_AD.
' WHERE link_id IN ('.$zap.')'.
FilterSQL().' ORDER BY link_id DESC LIMIT 3';

Мои ошибки:

1. one_col_array - запутался с методом

2. $tmp = array_slice($mass, 0, 3); а не $tmp[]=$mass[$i]['link_id'];

Тема исчерпана!

а что в print_r($mass); ?

array(1) { ["link_id"]=> string(2) "34" }


Если что поменяйте:

$tmp[]=$mass[$i]['link_id'];
на
$tmp[]=$mass['link_id'][$i];

print_r($tmp); die;

Array ( [0] => [1] => [2] => [3] => )

BasePelleta добавил 25.08.2011 в 10:37

Вроде бы вывод print_r($mass); говорит, что запрос правильный?

LEOnidUKG:
Теперь вместо:

$tmp[]=$mass[$i];
пишите:

$tmp[]=$mass[$i]['link_id'];

Сделал

print_r($tmp); die; вывел Array ( [0] => 3 [1] => [2] => [3] => )

LEOnidUKG:
Зачем тут появился count(*)?!

может сначала нужно данные ID считать


$mass = $db->one_assoc( "SELECT link_id FROM ".TBL_AD." where catid=\"".$a_Ad['catid']."\"" );

array(1) { ["link_id"]=> string(2) "34" }

LEOnidUKG:
var_dump($mass) сделайте сначала.

Ещё наверное проверку нужно сделать, если в $mass <$i то break;

 $mass = $db->one_assoc( "SELECT count(*) FROM ".TBL_AD." where catid=\"".$a_Ad['catid']."\"" );

array(1) { ["count(*)"]=> string(3) "339" }

LEOnidUKG:
BasePelleta, может сначала нужно данные ID считать, а уже потом перемешивать. Как думаете?

+ замените $tmp=$mass[$i]; на $tmp[]=$mass[$i];

Вы это имели ввиду ?

$mass = $db->one_assoc( "SELECT count(*) FROM ".TBL_AD." where catid=\"".$a_Ad['catid']."\"" );

var_dump($tmp); выводит array(4) { [0]=> string(3) "339" [1]=> NULL [2]=> NULL [3]=> NULL }

var_dump($zap); выводит string(6) "339,,,"

jokerov:
Вы путаете array_shift с shuffle

//Сначала считывайте в переменную $mass все ID из таблицы запросом.
//Потом делайте:

$mass = $db->one_assoc( "SELECT link_id FROM ".TBL_AD." where catid=\"".$a_Ad['catid']."\"" );

shuffle($mass); //Это перемешает массив.

//Потом выбираем ID
for($i=0;$i<4;$i++)
{
$tmp[]=$mass[$i];
}

//Теперь через запятую их складываем
$zap=implode(',',$tmp);

var_dump($zap); die;

var_dump($zap); выводит string(5) "34,,,"

Всего: 226