- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
Ex de requetes SQL drupal
drupal 6
simple: liste des emails
SELECT u.mail AS mail, v.value AS site
FROM `users` AS u
JOIN variable AS v
WHERE v.name = 'site_name'
de user 1
SELECT v.value AS site, u.mail AS admin_mail
FROM users AS u
JOIN variable AS v
WHERE u.uid = 1 AND v.name = 'site_name'
table url_alias et node
clef | table url_alias | table node |
x | `pid` int(10) unsigned NOT NULL, | `nid` int(10) unsigned NOT NULL, |
`src` varchar(128) NOT NULL DEFAULT '', `dst` varchar(128) NOT NULL DEFAULT '', `language` varchar(12) NOT NULL DEFAULT '' |
`vid` int(10) unsigned NOT NULL DEFAULT '0', `type` varchar(32) NOT NULL DEFAULT '', `language` varchar(12) NOT NULL DEFAULT '', `title` varchar(255) NOT NULL DEFAULT '', `uid` int(11) NOT NULL DEFAULT '0', `status` int(11) NOT NULL DEFAULT '1', `created` int(11) NOT NULL DEFAULT '0', `changed` int(11) NOT NULL DEFAULT '0', `comment` int(11) NOT NULL DEFAULT '0', `promote` int(11) NOT NULL DEFAULT '0', `moderate` int(11) NOT NULL DEFAULT '0', `sticky` int(11) NOT NULL DEFAULT '0', `tnid` int(10) unsigned NOT NULL DEFAULT '0', `translate` int(11) NOT NULL DEFAULT '0' |
|
ex de contenu |
src: user/ID, node/ID, taxonomy/term/ID dst: users/usename, content/title, category/mots-clés/mot1 |
type: page, book... title: titre page (sans chemin) |
Comment relier ces 2 tables (pas de clef commune)?
Source: http://robmalon.com/obtaining-the-url_alias-in-a-drupal-mysql-query/
Sélection d'un alias URL via id du node
D'abord, dans drupal (étant logué), chercher un node existant (et connu) et noter son ID (et son chemin). Par exemple, "Les corps, ces objets encombrants" a l'ID 29 et pour chemin: content/les-corps-ces-objets-encombrants
La requete: SELECT * FROM url_alias WHERE src = CONCAT(
'node/'
,
'29'
)
retourne: pid src dst language
content/les-corps-ces-objets-encombrants fr
65 node/29
Puis, créer un object pour récup les données, et utiliser dst pour y récupérer l'URL de ce node (sans la partie domaine).
JOIN url_alias avec colonne SRC d'un ID node
Souvent, pour manipuler un chemin, on doit joindre son URL à d'autres données :SELECT *
FROM node n
JOIN url_alias ua
ON ua.src = CONCAT('node/'
,n.nid)
Ex:
SELECT n.nid, n.type, n.title, ua.src, ua.dst
FROM node AS n
JOIN url_alias AS ua
where n.type='autrice' AND ua.src = CONCAT('node/',n.nid)
Pour drupal 7 (vm14, base ganx2):
SELECT n.nid, n.type, n.title, ua.source, ua.alias
FROM ganx2.node as n
JOIN ganx2.url_alias as ua
where ua.source = CONCAT('node/',n.nid)