2010-11-21 6 views
0
$query = 'SELECT DISTINCT(t.nid), n.nid, n.title FROM {node} n INNER JOIN {term_node} t ON n.nid = t.nid WHERE n.nid != %d AND ('; 

// except the current node 
$args = array($node->nid); 
    $tids = array(); 

    foreach ($node->taxonomy as $term) { 
$tids[] = 't.tid = %d'; 
    $args[] = $term->tid; 
} 

$query .= implode(' OR ', $tids) . ')'; 

der Abfragecode wird von einem Guru geschrieben. aber ich verstehe nicht, die Ruhe und ('; ... part.hope jemand kann es für mich erklären, dankeein schwieriger Abfragecode

Antwort

2

Blick auf die fertige generierte Abfrage (echo $query;) und es wird klarer werden

+0

... wie wir wissen, dass in foreach "$ node-> Taxonomie" ein Array ist und wenn ich Schleife, foreach ($ node-> Taxonomie als $ term) { } die Ausgabe, die ich bekomme, wird der $ term Wert sein. Ich weiß nicht, wie es sich ändert in die 't.tid =% d' und $ term-> tid. Danke. – runeveryday

+0

@runeveryday Ich denke, "Taxonomie" ist ein vordefiniertes Objekt. Die '% d' Ersatz kommt aus 'drupal_query()'. Beantwortet das deine Frage? –

Verwandte Themen