Database vergelijken met RSS
Ik ben bezig met een systeem die fileinformatie tweet. Nu word eerst gekeken of de file in de database staat. Zo ja, niks doen. Zo nee, tweeten.
Voorbeeld:
DB:
A27 .........
A5 ..........
A9 ............
RSS
A27.........
A5...........
A9.........
A7........
Nu word A7 dus getweet en toegevoegd aan de DB. Dit lukt allemaal. Maar wat ik nu wil is stel A27, A5 en A9 staan in de DB en in de rss alleen A27 en A5 dat A9 dan word verwijder. Is dit mogelijk?
Matthijs
DELETE FROM table WHERE aw_id NOT IN ('A27', 'A5')
@ger, ja maar die A27 en A5 zijn variable. Het kan ook A6 en A9 zijn bijvoorbeeld.
implode daar een komma tussen te plaatsen.
Dan genereer je die IN (..., ..., ...) met PHP door een array met alle waardes te hebben en dan met Niet alleen de komma, vergeet de '' niet ;-)
Code (php)
Of als je PHP5.2.x of lager hebt:
Code (php)
1
2
3
2
3
<?php
implode',', array_map(create_function('$value', 'return "\'".$value."\'";'), $values));
?>
implode',', array_map(create_function('$value', 'return "\'".$value."\'";'), $values));
?>
Maar het probleem is niet het verwijderen, maar het zien welke file's verwijderd moeten worden.
Want ik heb dus in de database maar file's staan dan in de rss, en dan moeten alle file's die niet meer in de rss staan uit de database.
Iemand enig idee??
Daarnaast, match gewoon de RSS met wat er in de DB staat en flikker wat niet in de RSS (meer) staat er gewoon uit, hoe moeilijk is het?
Dat is precies wat de query van Ger doet en met de code voorbeeldjes die ik gaf kun je de waardes in de Query variabel maken.
Bedankt voor de info, ik had de post van Ger inderdaad verkeerd gelezen. Mijn excuses volgens mij heb ik het nu werkende
Toevoeging op 28/06/2012 18:31:03:
@wouter, ik ben er net nog even mee bezig geweest. Maar ik krijg die functie van jou niet aan de praat. Ik krijg namelijk met implode er wel een , naast.. maar geen '' om heen...
Ik heb hetvolgende:
implode(',', array_map(function($wegarray) {
return "'".$wegarray."'";
}, $wegarray));
Hierin is $wegarray waarin ik alle wegnummers heb gezet met $array_push
maar hoe lees ik dit nu uit? En hoe krijg ik dus die '' er ook omheen?