[RISOLTO] Views restituisce sempre almeno un valore. è un bug?

3 contenuti / 0 new
Ultimo contenuto
[RISOLTO] Views restituisce sempre almeno un valore. è un bug?

Ciao a tutti.

Ho creato con view e cck un blocco che mi restituisce dei file e delle immagini allegate ad un nodo. Il problema nasce quando il nodo non ha allegati di nessun tipo. In questo caso infatti, viene sempre visualizzata almeno una riga, anche se vuota, nel blocco degli allegati.

Analizzando la query che fa view sul database ho notato che effettivamente, nel caso di nodi senza allegati, il database restituisce almeno un risultato, anche se esso ha parte dei valori nulli, tale problema è dovuto al fatto che la query effettua un join tra due tabelle.

So che non potrete provare sul vostro database questa query, ma la posto comunque per chiarimento:

La seguente query :
SELECT node.nid AS nid,
node_data_field_emfile.field_emfile_fid AS node_data_field_emfile_field_emfile_fid,
node_data_field_emfile.field_emfile_list AS node_data_field_emfile_field_emfile_list,
node_data_field_emfile.field_emfile_data AS node_data_field_emfile_field_emfile_data,
node.language AS node_language,
node_data_field_emfile.delta AS node_data_field_emfile_delta,
node.type AS node_type,
node.vid AS node_vid
FROM node node
LEFT JOIN content_field_emfile node_data_field_emfile ON node.vid = node_data_field_emfile.vid
WHERE node.nid = 1

Porta al seguente risultato:

nid 1
node_data_field_emfile_field_emfile_fid NULL
node_data_field_emfile_field_emfile_list NULL
node_data_field_emfile_field_emfile_data NULL
node_language
node_data_field_emfile_delta NULL
node_type page
node_vid 1

A questo punto tutte le funzioni che analizzeranno tale risultato crederanno che ci sia un solo risultato e di conseguenza verrà visualizzato sulla pagina.

Secondo voi questo può essere considerato un bug?
Qualcuno si è già scontrato con il problema, conoscete una soluzione oppure sapete dirmi quale funzione modificare?

Se vi interessa approfondire posso spiegarvi meglio come ricreare il problema.

Grazie

Nessun bug...

Pippo-Pippo wrote:

SELECT ...
WHERE node.nid = 1

Porta al seguente risultato:

nid                                                     1
...
node_vid                                                1

A questo punto tutte le funzioni che analizzeranno tale risultato crederanno che ci sia un solo risultato e di conseguenza verrà visualizzato sulla pagina.

Allora dove sta il problema? Hai fatto una query per il nodo con nid = 1, e finchè esiste, lui lo troverà, è lo restituirà. Punto.
Pippo-Pippo wrote:
Secondo voi questo può essere considerato un bug?
Qualcuno si è già scontrato con il problema, conoscete una soluzione oppure sapete dirmi quale funzione modificare?
Se vi interessa approfondire posso spiegarvi meglio come ricreare il problema.

Penso che hai bisogno di smanettare un pò con i filtri. Non so se era tua intenzione estrarre proprio il nodo nid = 1, ma se si, forse è sufficiente aggiungere un filtro che controlla che field_emfile_fid non è NULL, ecc, ecc.

Più imparo, più dubito.

Grazie mille jhl.verona,

non sapevo che si dovesse impostare un filtro per risolvere questo problema. Comunque ho risolto perfettamente il mio problema: ora se non ci sono allegati non visualizza il blocco.

grazie ancora