Jag har kommit på hur min spindel ska se ut nu och det går ut på att jämföra databasen med handlarens index-fil helatiden. Först kolla om det kommit nya annonser och sedan kolla om någon annons från databasen inte gäller längre. Såhär ser det ut med kod:
Kod:
<?
$query_handlare=mysql_query("SELECT * FROM handlare");
while ($r_handlare=mysql_fetch_array($query_handlare)) {
$filepath = $r_handlare['link'];
$contents = file($filepath);
// Kollar om det kommit nya annonser
foreach ($contents as $row) {
list($datum, $bild, $rubrik, $beskrivning, $kategori, $lan, $typ, $pris, $lank) = explode("|", $row);
$query_new=mysql_query("SELECT * FROM annonser WHERE h_id='".$r_handlare['id']."' AND h_lank='".$lank."'");
if (mysql_num_rows($query_new) < 1) {
mysql_query("INSERT INTO annonser () VALUES ()");
}
// Kollar om det försvunnit annonser
$query_old=mysql_query("SELECT * FROM annonser WHERE h_id='".$r_handlare['id']."'");
while ($old=mysql_fetch_array($query_old)) {
// PROBLEM: HÄR SKA DET KOLLAS OM DET FINNS NÅGON RAD DÄR $old['h_lank'] INTE FINNS MED, ISÅFALL SKA DEN RADERAS FRÅN DATABASEN
foreach ($contents as $row) {
list($datum, $bild, $rubrik, $beskrivning, $kategori, $lan, $typ, $pris, $lank) = explode("|", $row);
}
}
}
?>
MEN, ni ser mitt problem där vid rad 24 - 27. Hur gör man en count på hur många rader det finns där länken från databasen matchar en länk från någon rad i index-filen? Och om det är mindre än 1 så ska den raderas från databasen.