[Résolu] Comment obtenir sous drupal 7 le résultat de cette simple requête SQL

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Sachez d'obord que j'avais résolu ce problème avec views_calc. Mais views_cal ne fonctionne pas chez l'hébergeur de mon site opérationnel (alors qu'il fonctionne très bien chez l'hébergeur de mon prototype). C'est pour cela que j'essaie de bypasser le problème en créant un article qui me fournirait le même résultat !

On veut par exemple afficher la SOMME des contrats signés par l'agence d'Agen depuis une table contenant bêtement entre autres 2 colonnes ville et quantités.

Voici ce qu'on ferait en PHP/MySQL :
$t = mysql_query("SELECT SUM(quantites) as somme FROM contrats WHERE ville='Agen'");
$r = mysql_fetch_assoc($t);
echo 'Resultat = ' .$r['somme'];

Comment faire ça sous DRUPAL 7 où "ville" et "quantités" sont deux champs des noeuds de type "contrats"?

Cordialement
Pierre

Forum : 
Version de Drupal : 

ce n'est pas si simple que ça car tes champs quantité et ville qui sont surement des champs cck, ce trouvent dans des tables différentes du style field_data_quantité.

ce qui pourrait donner un truc du style :

$somme = db_query("SELECT SUM(field_quantite_value) FROM {field_data_quantite} fq
LEFT_JOIN {node} n ON fq.entity_id = n.nid
LEFT_JOIN {field_data_ville} fv ON fv.entity_id = fq.entity_id
WHERE fv.field_ville_value = :ma_ville",array(':ma_ville'=> 'mon_texte')

)->fetchField();

non tester mais c'est ça l'idée. Regarde bien dans ta base de donnée ça peut aider.

++

C'est exactement ça ced_sdml : "field_contrats_ville" et "field_contrats_quantités" sont deux champs de noeuds du même type "contrats". Mais au niveau de la base MySQL il n'y a pas de table "contrats" par contre j'ai des tables "field_contrats_ville" et "field_contrat_quantités". C'est à cause de cette organisation interne de la base de données Drupal que des choses si simples en SQL de base deviennent très compliquées sous DRUPAL. En plus quand on code en dur du PHP dans un article et qu'il y a une erreur de programmation c'est vite le "FATAL ERROR" avec le risque d'avoir tout à restaurer...

Je vais donc essayer votre solution sur un DRUPAL de test avec rien dedans ! Mais n'y a-t-il pas un problème de syntaxe : il y a un « qui n'est pas fermé

Et si ça marche alors grand merci.

Pierre

" c'est une double cote il y en a une avant le select et une après :ma_ville.

Après vue qu'il y a des champs CCK ça ne peu pas être juste une simple requête sur une seule table mais des jointure entre plusieur.

je n'ai pas tester la requête je l'ai mise en live faudra tester et adapter mais je pense que ça doit pas être loin .

De plus codé en dur dans les page c'est mal (lol).

Il faut passer du temps pour comprendre l'API de drupal et s'en servir (utilisation des hook).

C'est pas si facile et effectivement ça prend du temps, Bon courage !!