Малко помощ pls...

uni-web

Banned
Проблема ми е там че при селекта когато има два банера с еднакви ключови думи не ми зачита позицията!

PHP:
$html = @file_get_contents($ref);

if(preg_match('/<title>(.*)<\/title>/smU', $html, $matches)) {
    $title = $matches[1];
    
    $title = str_replace($big , $smal, $title);
    
    $mas=explode(" ",$title);
    for ($i=0; $i<count($mas);$i++){
    $str1 .= "%" . $mas[$i] . "%";

        if(strlen($mas[$i]) > 2){
            $srta .= "or `keywords` LIKE '%" .$mas[$i]. "%' ";
         }

    }
    
    

$searcha = $srta;
$search = $str1;
    
    if(mysql_num_rows(@mysql_query("select * from baners_reclam where position = '4' and bstatus = 'active' and type != 'google' and `keywords` LIKE '$search' $searcha ORDER BY RAND() limit 1")) == ""){
        $queri = @mysql_fetch_array(@mysql_query("select * from baners_reclam where position = '4' and bstatus = 'active' and type != 'google' ORDER BY RAND() limit 1"));
    }else{
        $queri = @mysql_fetch_array(@mysql_query("select * from baners_reclam where position = '4' and bstatus = 'active' and type != 'google' and `keywords` LIKE '$search' $searcha ORDER BY RAND() limit 1"));
    }

}
 
Re: Малко помощ pls...

според мен трябва да сложиш едни скоби за да оправиш приоритета,
(А и Б или Ц) е в момента!
 
Re: Малко помощ pls...

според мен трябва да сложиш едни скоби за да оправиш приоритета,
(А и Б или Ц) е в момента!

Пробвах и скобите пак се бърка mysql аа не знам аз си мисля че е зареди random секекта а точно той ми трябва в случая. Благодаря за съвета po_taka 🙂

Пример: заявката излиза така но всеки път изкарва различни резултати от различните позиции ако има съвпадение на ключови думи:

Код:
select * from baners_reclam where position = '4' and bstatus = 'active' and type != 'google' and `keywords` LIKE '%пловдив%%обяви%%българия%%инфо%' or `keywords` LIKE '%пловдив%' or `keywords` LIKE '%обяви%' or `keywords` LIKE '%българия%' or `keywords` LIKE '%инфо%'  ORDER BY RAND() limit 1
 
Последно редактирано:
Re: Малко помощ pls...

а сложи ли скобите на правилното място ?

Ами мисля да пробвах и така

Код:
select * from baners_reclam where (position = '4' and bstatus = 'active' and type != 'google') and `keywords` LIKE '%пловдив%%обяви%%българия%%инфо%' or `keywords` LIKE '%пловдив%' or `keywords` LIKE '%обяви%' or `keywords` LIKE '%българия%' or `keywords` LIKE '%инфо%'  ORDER BY RAND() limit 1

И така

Код:
select * from baners_reclam where position = '4' and bstatus = 'active' and type != 'google' and (`keywords` LIKE '%пловдив%%обяви%%българия%%инфо%' or `keywords` LIKE '%пловдив%' or `keywords` LIKE '%обяви%' or `keywords` LIKE '%българия%' or `keywords` LIKE '%инфо%' ) ORDER BY RAND() limit 1

Резултата е еднакъв.
 
Re: Малко помощ pls...

Мерси po_taka проблема се реши с скобите стана 🙂

Код:
select * from baners_reclam where (position = '4' and bstatus = 'active' and type != 'google') and (`keywords` LIKE '%пловдив%%обяви%%българия%%инфо%' or `keywords` LIKE '%пловдив%' or `keywords` LIKE '%обяви%' or `keywords` LIKE '%българия%' or `keywords` LIKE '%инфо%')  ORDER BY RAND() limit 1
 

Back
Горе