Ik ben bezig met mn site en nu wil ik wanneer een nieuwsbericht wordt gelezen daarbij de relaterende items ook weergeven. Ik heb in de database een rij 'relaterend' waarbij je iets kan invoeren wat relatie heeft met de titel. Bijv als de titel 'Slipknot's nieuwe album' is, dan kan je bij relaterend 'Slipknot' invoeren. Bij het nieuwsbericht wordt dan gezocht naar andere nieuwsberichten met (ongeveer) dezelfde relaterende termen, dus ander nieuws waarbij ook 'Slipknot' is ingevuld als relaterend, alleen lukt dit nog niet.
Allereerst lees ik het volgende uit, zodat het bericht met juiste id wordt weergeven:
<?
$query = mysql_query("SELECT * FROM x WHERE id = $_GET[id]");
wat prima gaat (later in het document wordt de while weer afgesloten).
Vervolgens wil ik relaterende items weergeven waarbij ik nog een error krijg 'not a valid mysql re...'
<?
// RELATED ITEMS ETC
$queryje = mysql_query("SELECT * FROM x WHERE $titel LIKE ‘$object->relaterend%’ ORDER BY titel");
while($objectje = mysql_fetch_object($queryje)){
$titel = $objectje->titel;
Hij werkt nu half, ik krijg alleen nog alle titels uitgelezen bij de eerste en laatste 2 berichten op de site, bij de andere niks en bij de 2 berichten met Slipkot in de titel een error (omdat ie dan wel iets gevonden heeft ofzo) met de volgende query:
<?
// RELATED ITEMS ETC
$queryje = mysql_query("SELECT * FROM nieuwsberichten WHERE '$titel' LIKE '%$relaterend%' ORDER BY datum");
while($objectje = mysql_fetch_object($queryje)){
$titel = $objectje->titel;
?>
Hij werkt, ik krijg nu alleen nog ook het bovenstaande nieuwsitem in het lijstje met gerelateerd nieuws naast het werkelijk gerelatereerde.
Het grotere probleem is dat ik nu de waardes niet meer goed krijg. In de tabel staat namelijk ook categorie en genre, en afhankelijk daarvan wordt een plaatje getoond en de kleur van de lijn bepaald, die nu dus niet werken. Heb verschillende manieren geprobeerd maar toen kreeg ik alleen maar errors.
<?
$sql = "SELECT titel,bericht,datum,relaterend,auteur,genre,categorie,mid FROM tabel_naam WHERE id = '" . $_GET['id'] . "'";
$res = mysql_query($sql);