Catégories:
Bonjour,
Je souhaite passer le nid en argument dans une vue et comme argument par défaut je souhaite mettre du code personnalisé :
En fait j’aimerai sélectionner aléatoirement le nid d’un noeud au hasard dans un type de contenu bien précis. J’ai essayé de taper la requête suivante dans le champs «Code d’argument PHP» :
SELECT node.nid AS nid
FROM node node
WHERE (node.status <> 0) AND (node.type in ('MonTypeDeContenu'))
ORDER BY rand()
LIMIT 1Mais ce code me renvoi pleins d’erreurs.
Peut-être je n’emploie pas la bonne syntaxe.
Une idée ?
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Le code que tu met dans ce champ doit retourner une variable.
donc il faut qu il y ai un return dans ce code et que ce return return bien un nid.
MOMO Drupal en force
mbehmane
866
Désolé mais Drupal requiert une syntaxe particulière au niveau des requêtes et là je ne maitrise pas du tout.
Aurais-tu un exemple d’un code tout fait avec le return inclus dedans ?
saradimi
56
De plus il faut passer par des fonctions pour faire une requête…
Le code devrait être plutôt de la forme return db_result(db_query(ta-requete)) ;
Je te conseille de faire des tests hors de la vue dans une page en php par ex. pour vérifier que cela renvoie bien une valeur unique…
DRUPALONS.FR : lisez-nous et testez notre générateur de code, ou les flux drupaliens.
emerya
1167
J’ai finalement trouvé !
Le code à insérer était :
return db_result(db_query("SELECT node.nid AS nid
FROM node node
WHERE (node.status <> 0) AND (node.type in ('MonTypeDeContenu'))
ORDER BY rand()
LIMIT 1"
));
Merci de m’avoir mis sur la voie.
saradimi
56