Selezionare un nodo a caso associato ad un termine

Posts: 16
Iscritto il: 31 Gen 07

Ciao a tutti,
ho la necessità di caricare un nodo a caso di una particolare categoria.

Supponendo di avere a disposizione su $termine il mio id del vocabolario, come prendo questo nodo?
Ho provato a fare

<?php

$count
= 1;
$sql = "SELECT n.title, n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid in ($termine) AND n.status=1 ORDER BY n.created DESC";
$result=db_query(db_rewrite_sql($sql), 0, $count);
while (
$anode = db_fetch_object($result)) {
print
$anode->title;
}

?>

ma $anode sembra non contenere niente (tralasciando il fatto che non è una scelta casuale).

Cosa mi consigliate?


Posts: 1814
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

tramite sql o tramite views?
Nel secondo caso la cosa da fare mi sembra banale, nel primo caso cercherei un nid nella tabella term_node e poi carichi il relativo nodo:

<?php
$termine
= 10;
$nid = db_fetch_object(db_query("SELECT nid FROM {term_node} WHERE tid = %d LIMIT 1", $termine));
$node = node_load(array('nid' => $nid));
print
theme('node', $node);
?>

non è random e non l'ho testato , ma dovrebbe andare.

PS: ovviamente mancano un pò di controlli, tipo nodo pubblicato, ...

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 16
Iscritto il: 31 Gen 07

alla fine ho utilizzato:

<?php

$terms
= $node->tid;
   
$termine = $terms;
   
$nid = db_fetch_object(db_query("SELECT nid FROM {term_node} WHERE tid = %d LIMIT 1", $termine));
   
$nodea = node_load($nid);

?>


Condividi contenuti