Skip to content
Extraits de code Groupes Projets
Valider e302b12f rédigé par esj's avatar esj
Parcourir les fichiers

Jointures sur tables externes demandées par #113

parent 643c61f6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -660,28 +660,37 @@ function trouver_cles_table($keys) ...@@ -660,28 +660,37 @@ function trouver_cles_table($keys)
function trouver_def_table($nom, &$boucle) function trouver_def_table($nom, &$boucle)
{ {
global $tables_principales, $tables_auxiliaires, $table_des_tables, $tables_des_serveurs_sql; global $tables_principales, $tables_auxiliaires, $table_des_tables, $tables_des_serveurs_sql;
if ($desc = $tables_principales['spip_' . $nom]) spip_log("tdt $nom");
return array('spip_' . $nom, $desc); $nom_table = $nom;
$s = $boucle->sql_serveur;
if (!$s) {
$s = 'localhost';
// indirection (pour les rares cas ou le nom de la table!=type)
if (in_array($nom, $table_des_tables))
$nom_table = (($GLOBALS['table_prefix'] ? $GLOBALS['table_prefix'] : 'spip') . '_' . $nom);
if ($boucle->sql_serveur && }
$desc = $tables_des_serveurs_sql[$boucle->sql_serveur][$nom])
return array($nom, $desc); $desc = $tables_des_serveurs_sql[$s][$nom_table];
include_spip('base/auxiliaires'); if ($desc)
if ($desc = $tables_auxiliaires['spip_' . $nom]) return array($nom_table, $desc);
return array('spip_' . $nom, $desc);
$desc = $table_des_tables[$nom] ? (($GLOBALS['table_prefix'] ? $GLOBALS['table_prefix'] : 'spip') . '_' . $nom) : $nom; include_spip('base/auxiliaires');
if ($desc = spip_abstract_showtable($desc, $boucle->sql_serveur)) $nom_table = (($GLOBALS['table_prefix'] ? $GLOBALS['table_prefix'] : 'spip') . '_' . $nom);
if (isset($desc['field'])) { if ($desc = $tables_auxiliaires[$nom_table])
return array($nom_table, $desc);
if ($desc = spip_abstract_showtable($nom, $boucle->sql_serveur))
if (isset($desc['field'])) {
// faudrait aussi prevoir le cas du serveur externe // faudrait aussi prevoir le cas du serveur externe
$tables_principales[$nom] = $desc; $tables_principales[$nom] = $desc;
return array($nom, $desc); return array($nom, $desc);
} }
erreur_squelette(_T('zbug_table_inconnue', array('table' => $nom)), erreur_squelette(_T('zbug_table_inconnue', array('table' => $nom)),
$boucle->id_boucle); $boucle->id_boucle);
} }
function trouver_champ_exterieur($cle, $joints, &$boucle) function trouver_champ_exterieur($cle, $joints, &$boucle)
{ {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter