Ulhume, le 23 November, 2007 - 14:30

Dans la requête SQL donnée en exemple, je ne sélectionne que le champ "name", rien ne t'empêches cependant de faire une sélection plus large, remontant plus de champs, ou même de faire une jointure pour faire une recherche sur plusieurs tables. Par exemple avec un node de type "ville" et une table associée "extension" qui contient l'information de pays, cela donnerait :

    $cursor = db_query_range("
      SELECT n.title, e.pays
      FROM node n
                        INNER JOIN e extention ON e.nid=n.nid
      WHERE LOWER(e.title) LIKE LOWER('%s%%')"
, $string, 0, 10);
    while ($term = db_fetch_object($cursor))
      $matches[$term->name] = $term->title.' '.$term->pays;

Et ce type de requête, pourvu que tu ais des indexes, ne pose pas de problème même sur un grand nombre de node, le paramètre (10) fait que tu ne remontes que 10 entrées (en fait Drupal modifie la requête pour ajouter un simple LIMIT 10 à la fin). Pas besoin donc de préselectionner quoi que ce soit, si j'ai bien compris ta question.

Répondre

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Textual smileys will be replaced with graphical ones.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.

Plus d'informations sur les options de formatage

Connexion utilisateur
Les derniers bavardages...