Quantcast
Channel: Joomla CMS Support Forum
Viewing all articles
Browse latest Browse all 20261

Query Problem, gesucht Ids der article mit gleichen meta tags wie der contentarticle

$
0
0
Guten Tag,

ich bin noch sehr neu was Joomla angeht und versuche mich gerade an meinem ersten eigenen Modul.

Das Zeil ist es, unter dem Horizontalmenü meiner Seite, einen kleinen Block darzustellen.
Dieser Block soll einen einen zufälligen Artikel in einer Preview anzeigen, der mind. einen gleichen Meta-Tag hat wie mein Artikel im Contentbereich.
Unter 1-2 Sätzen soll ein Weiterlesen Link stehen.

Ich habe ein Modul erstellt und es wird auch angezeigt wo ich es möchte.

Bisher ist es mir gelungen die Metakeys des Contentartikel zu ermitteln:

PHP-Code:

    $document=& JFactory::getDocument();

    
$metakeywords $document->getMetaData('keywords'); 

Dann möchte ich mir aus der Datenbank die Ids aller Artikel mit gleichen Tags geben lassen, bzw direkt schon einen zufälligen auswählen:

PHP-Code:

    $query
        
->select($db->quoteName('id'))
        ->
from($db->quoteName('#__content'))
        ->
where($db->escape($db->quote('metaKey'),'false') . ' LIKE '' ANY ' $db->quote($metakeywords))
        ->
order('RAND() LIMIT 1');
    
    
$db->setQuery($query);
    
    
$results $db->loadResult();
    
    echo 
'<p>'.$metakeywords.'</p>'
    echo 
'<p>'.$results.'</p>'

Aber hier stimmt noch etwas nicht und ich bekomme einen Fehler:

Zitat:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'metaKey\' LIKE ANY 'Innere Medizin, Kardiologie' ORDER BY RAND() LIMIT 1' at line 3 SQL=SELECT `id` FROM `kasjos_content` WHERE \'metaKey\' LIKE ANY 'Innere Medizin, Kardiologie' ORDER BY RAND() LIMIT 1
Kann mir da vlt. jmd. einen Tipp geben?

Unsicher bin ich mir zum Beispiel bei dem "escape" der metaKeys. Ich habe in die Tabelle geguckt mit phpMyAdmin und gesehen, dass die metaKey Kommagetrennter TEXT sind.
Daher dachte ich ich muss sie in ein Array Splitten und über LIKE ANY bekäme ich den Datensatz dann, wenn die Arrays "$db->escape($db->quote('metaKey'),'false')" und "$db->quote($metakeywords)" min. einen gemeinsamen Wert haben.

Besten Dank schonmal an alle auch für die Aufnahme ins Forum!

Viele Grüße,

Stefan

Viewing all articles
Browse latest Browse all 20261