Ik heb een database met nieuwsberichten, en had eerder vragen over distinct. Met distinct kon worden voorkomen dat dezelfde nieuwsberichten op de voorpagina zouden verschijnen.
Ik heb besloten om in plaats van achteraf te dwijlen, gewoon het probleem te voorkomen door entries eerst te vergelijken, voordat ze in de database terecht komen. Dan nu mijn vraag :)
Zodra we een post binnen halen, moet deze vergeleken worden met de laatste 50 resultaten. Ik weet niet hoe ik dat precies moet doen. Ik neem aan dat het iets zal moeten doen met foreach... Ik heb nu het volgende, maar dit werkt niet naar behoren.
<?
// $posttitle is de titel van het binnen komende bericht,
// $post_title is de titel van een bericht dat al in de database staat.
$titels = array(); # lege array
$sql = "SELECT post_title FROM db WHERE type='1' ORDER BY timestamp DESC LIMIT 0,50";
$db = MYSQL_QUERY($sql);
$titels = MYSQL_FETCH_ARRAY($db);
foreach ($titels as $titeltje)
{
similar_text($posttitle, $titeltje, $percentage);
if ($percentage > 70) {
echo "$posttitle --- betstaat al!<br>";
}
else{
echo "$posttitle --- insert<br>";
} ?>
Doordat het script niet werkt, worden resultaten nu 2 keer in de database gezet, zonder de gelijken eruit te filteren. Door similar_text te gebruiken, zouden ook berichten met ongeveer dezelfde titel moeten worden uitgesloten van opname. Advies iemand?
932 views