Query SearchLO
Buonasera a tutti,
Sono uno studente di informatica e come lavoro devo fare l'upgrade di modulo creato da un imo collega dalla versione 6 di drupal alla versione 7.
Solo che ho un problema con le query, una in particolare, che ho provato a modificare solo che mi da errori di sintassi, non è che potreste darmi una mano gentilmente? grazie mille!
Questa è la query nella versione 6:
<code>
$query=db_query("SELECT node_revisions.nid
FROM ".$descq.$authq.$catq."{node_revisions} JOIN {linkableobject_node} ON node_revisions.nid=linkableobject_node.node_id ".$from."
WHERE ((MATCH (`title`) AGAINST ('%s')) OR (MATCH (`body`) AGAINST ('%s')) OR (MATCH (`lom_keyword`) AGAINST ('%s'))) ".$where,$keys,$keys,$keys);
</code>
Cosi è come l'ho modificata:
<code>
$query=db_query("SELECT node_revision.nid
FROM ".$descq.$authq.$catq."{node_revision} JOIN {linkableobject_node} ON node_revision.nid=linkableobject_node.node_id ".$from."
WHERE ((MATCH (title) AGAINST ('%s')) OR (MATCH (body) AGAINST ('%s')) OR (MATCH (lom_keyword) AGAINST ('%s')))".$where, array('title'=>':keys','body'=>':keys','lom_keyword'=>':keys'));
</code>
Potete darmi una mano? Grazie mille! =)
Risposte
Ciao, prova: <?php$query =
Ciao, prova:
<?php
$query = db_query("SELECT node_revision.nid FROM " . $descq . $authq . $catq .
"{node_revision} JOIN {linkableobject_node} ON node_revision.nid =
linkableobject_node.node_id " . $from . "
WHERE ((MATCH (title) AGAINST (:title)) OR (MATCH (body) AGAINST (:body)) OR
(MATCH (lom_keyword) AGAINST (:lom_keyword)))" . $where,
array(
':title' => $keys,
':body' => $keys,
':lom_keyword' => $keys
)
);
?>
No mi spiace continua a darmi
No mi spiace continua a darmi errore, le variabili $descq, authq e catq sono altre query e non so se da errore per quello, mentre $where è una condizione che viene definita mendiante in if.
Ad esempio ti scrivo descq :
<code>
<?php
$descq="(SELECT node_revision.nid AS node, MATCH ('body')
AGAINST (\''.$desc.'\' IN BOOLEAN MODE)
FROM {node_revision}
WHERE MATCH (body) AGAINST (\''.$desc.'\' IN BOOLEAN MODE)) as de,";
?>
</code>
Risolto, grazie mille!
Risolto, grazie mille! =)
Sono andato a controllare l'altro errore ed era sul $from, è una query con join che avevo scritto dinamicamente, quindi la voleva statica, adesso mi da un errore sul database che non supporta il modo FULLTEXT.
Domani mattina modifico il database =).
Grazie mille dall'aiuto!
Ottimo! A presto.
Ottimo! A presto.