[risolto] mostra i termini di un vocabolario tramite codice php...

8 contenuti / 0 new
Ultimo contenuto
[risolto] mostra i termini di un vocabolario tramite codice php...

Volevo mostrare i termini di un determinato vocvabolario...
Ho trovato questo codice

<?php
$query
= "SELECT tid, name from {term_data} WHERE description = '' ORDER BY name ASC";
$result = db_query($query);
while (
$term = db_fetch_object($result)) {
 
$items[]= l($term->name, "taxonomy/term/$term->tid");
}
if(
count($items)) {
  return
theme('item_list',$items);
}
?>

Solo che mi mostra tutti i vocabolari, come faccio a selezionare un vocabolario specifico?

Ciao,
$query = "SELECT tid, name from {term_data} WHERE description = '' ORDER BY name ASC";
significa che "pesca" dalla tabella term_data dove la descrizione è vuota in ordine per nome ascendente

Questa trova il termine Abbigliamento se presente:
$query = "SELECT tid, name from {term_data} WHERE name = 'Abbigliamento' ORDER BY name ASC";

Questa trova ID in ordine decrescente:
$query = "SELECT tid, name from {term_data} WHERE tid>10 ORDER BY tid DESC";

Questa è una INNER JOIN che restituisce le righe delle tabelle se c'è un legame, altrimenti non le mostra.
SELECT
prefisso_vocabulary.vid, prefisso_vocabulary.name, prefisso_term_data.vid, prefisso_term_data.name
FROM
prefisso_vocabulary
INNER JOIN
prefisso_term_data
ON
prefisso_vocabulary.vid = prefisso_term_data.vid
WHERE
prefisso_vocabulary.vid=1

!! attenzione cambiare il prefisso_ questo è solo un esempio !!

non ci ho capito una mazza....
comunque.... io ho fatto una domanda ben precisa: ofvvero questo mostra tutti i vocabolari a me interessa uno solo... quindi come si fa?
dove devo mettere 22 se il vocabolario è il 22?

cioè come si scrive mostrami tutti i termini della taxonomy numero 22?

ad esempio se scrivo....

SELECT tid, name FROM {term_data} WHERE vid = 22

.....
perchè non funziona?

ho scritto:

<?php
$query
= "SELECT tid, name FROM {term_data} WHERE vid = 22";
$result = db_query($query);
while (
$term = db_fetch_object($result)) {
  $items[]= l($term->name, "taxonomy/term/$term->tid");
}
if(
count($items)) {
  return theme('item_list',$items);
}
?>

.......

solo che mi dice:

Parse error: syntax error, unexpected T_VARIABLE in /home/dragossi/domains/dragossido.com/public_html/includes/common.inc(1695) : eval()'d code on line 6

ho trovato la soluzione, per chi fosse interessato al codice eccolo:

<?php
$taxmenu
= "SELECT tid, name FROM {term_data} WHERE vid = 3";
$result = db_query($taxmenu);
 while (
$data = db_fetch_object($result)) {
 
$output .= '<li><a href="'.$base_path.'/taxonomy/term/'.urlencode($data->tid).'">'.$data->name.'</a></li>';
 }
print
$output;
?>

Basta cambiare Il numero "3" e mettere quello del vocabolario!

Bene dragossido, mi fa piacere che hai macinato la soluzione, se per te quel codice va bene allora ok.
Ciao!

danzisiweb wrote:
Bene dragossido, mi fa piacere che hai macinato la soluzione, se per te quel codice va bene allora ok.
Ciao!

Bhe... i teremini della taxonomy mi appaiono... ed è quello che importa! :):):)

quando ho visto errore

Parse error: syntax error, unexpected T_VARIABLE in /home/dragossi/domains/dragossido.com/public_html/includes/common.inc(1695) : eval()'d code on line 6

ho capito che asvevo sgbagliato alla riga 6, ma che quello che avevo scritto prima era giusto...
quindi ho preso un po' di php spicciolo che conoscevo e ho ricostruito le istruzioni successive cambiando anche un po' le istruzioni $
E il risultato è buono.,.. se suggerisci modifiche fai pure... io ho un php moooooooooooloto spicciolo! :):):)