Подобни новини

explozen

Registered
Здравейте.
Някой има ли представа как може да се направи при преглеждането на новина под новината да има бокс със подобни новини. Тоест да търси подобни новини като тази която чета във момента.
 
Взимаш заглвието на текущата новина и правиш заявка
Код:
select * from news where title like '%$tekushtanovina%'
 
Hous каза:
Взимаш заглвието на текущата новина и правиш заявка
Код:
select * from news where title like '%$tekushtanovina%'
'%$tekushtanovina%' тука какво трябва да сложа?
 
$tekushtanovina = "$row['title']";
където 'title' ти е поле от таблицата на новините
 
Не се получава.

Така няма ли да стане:
PHP:
SELECT * FROM news WHERE ime LIKE '{$ime}'
?
 
explozen каза:
Добавих ги и пак неще :?
И какво не се получава?Бъди по-конкретен.Вероятно нямаш подобни новини на тази,която преглеждаш.
 
Или не взимаш правилно името на новината,или просто има някъде грешка по трасето, този трик го знам от много време и както съм дал заявката си работи.
Код:
$newid=$_GET['id'];
$checkifexist("select * from news where ID=$newid");
while($row=mysql_fetch_array($checkifexist)){
$zaglavie=$row['news_title'];
.......
}
....
...
...
///podobni novini
$similar("select * from news where news_title LIKE '%$zaglavie%' order by DESC LIMIT 5");
....
//sloji edno or die mysql error za da vidish greshka v zaqvkata ako ima :)
 
Това ми е кодчето:
PHP:
            <table border="0" cellspacing="8"> 
            <?php 
			}
            $query = mysql_query("SELECT * FROM news WHERE ime LIKE '%{$ime}%'") or die (mysql_error()); 
            $broi = mysql_num_rows($query); 
            $max_count = ceil($broi); 
            $limit=8; 
            if((int)$_GET['page']>0) { 
               $page=(int)$_GET['page']-1; 
            } else { 
               $page=0; 
            } 
            $max_pages=ceil($max_count/$limit); 
            $sql = mysql_query("SELECT * FROM news WHERE ime LIKE '%$ime%' ORDER BY id DESC LIMIT ".($limit*$page).",".$limit); 
            $i =0; 
            while($data=mysql_fetch_assoc($sql)){ 
            if($i==4) { 
            print '<tr>'; 
            $i=0; 
            } 
            ?> 
            
            <td style="width: 145px;"> 
               <div class="subitie"><center> 
                  <a href="news/<?=$data['id'];?>"> 
                     <img src="<?=$data['thumb'];?>" border="0" alt="зареждане на изображението" width="110" height="110" class='news_img_rec' title="<?=$data['ime'];?>" align="top"/> 
                     <div class="feedNews_p"><?=$data['ime'];?></div> 
                  </a> 
               </center> 
            </div></td> 
            
            <? 
            if($i==4) { 
            print '</tr>';$i=0; 
            } 
            $i++; 
            }?> 
            
            </table>
 
Един вариант за подобни новини е да вземеш цялото си заглавие -> да го разделиш на думи и да търсиш в други заглавия за подобни думи.

Ето ти бърз пример:

Код:
$zaglavie = 'Днес има протест на улицата';

$words = explode(" ", $zaglavie);

$sql = "SELECT * FROM `news` WHERE 1 LIKE 1';

foreach($words as $word)
{
$sql .= "OR `title` LIKE '%$word%';
} 

$sql .= 'LIMIT 5';

echo $sql; //да видиш заявката.

edit: thx
 
Първо направи едната заявка , вземи от нея в цикъл името на новната и извън този цикъл , направи втори в които постави заявката
Код:
WHERE title LIKE '%$neshto%'
а това което fakeheal каза също е идея, ако статията е "Терористи нападнаха иран"
и ти реало търсишс "покажи ми новината със заглавие като ...терористи нападнаха иран..." няма да има много резултати (може би 0)
докато ако ги разпаднеш на думи ще търсиш всяка една от думите и ще покажеш 1 новина (примерно) която съдържа терористи/нападнаха/Иран
:)
 

Back
Горе