Hi,
here the elements you asked.
the sql dump is :
SET SQL_MODE=“NO_AUTO_VALUE_ON_ZERO”;
SET time_zone = “+00:00”;
CREATE TABLE IF NOT EXISTS etablissement
(
etablissement_id
bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘PK etablissement’,
raison_sociale
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
adresse
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
code_postal
int(5) NOT NULL,
ville
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
siret
bigint(14) NOT NULL,
code_ape
varchar(5) COLLATE utf8_unicode_ci NOT NULL,
level
tinyint(1) NOT NULL,
etablissement_idp
bigint(20) DEFAULT NULL COMMENT ‘etablissement parent’,
responsable_id
bigint(20) NOT NULL COMMENT ‘FK responsable’,
PRIMARY KEY (etablissement_id
),
KEY responsable_id
(responsable_id
),
KEY etablissement_idp
(etablissement_idp
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;
INSERT INTO etablissement
(etablissement_id
, raison_sociale
, adresse
, code_postal
, ville
, siret
, code_ape
, level
, etablissement_idp
, responsable_id
) VALUES
(1, ‘holding 1’, ‘8 rue de la republique’, 75001, ‘Paris’, 12345678901234, ‘4305Z’, 0, NULL, 1),
(2, ‘filiale 1’, ‘38 rue de chanzy’, 75002, ‘Paris’, 12345678900001, ‘0432F’, 1, 1, 1),
(3, ‘filiale 2’, ‘32 rue des calvers’, 75003, ‘Paris’, 12345678900006, ‘4329M’, 1, 1, 1),
(4, ‘etablissement 1’, ‘53 rue des champs’, 75004, ‘Paris’, 12345678901207, ‘9432R’, 0, NULL, 1);
CREATE TABLE IF NOT EXISTS responsable
(
responsable_id
bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘PK responsable’,
nom_responsable
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
fonction_responsable
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
nom_contact
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
fonction_contact
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
telephone_contact
int(10) NOT NULL,
mail_contact
varchar(100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (responsable_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
INSERT INTO responsable
(responsable_id
, nom_responsable
, fonction_responsable
, nom_contact
, fonction_contact
, telephone_contact
, mail_contact
) VALUES
(1, ‘nom1 prenom1’, ‘DAF’, ‘nom2 prenom2’, ‘comptable’, 102030405, 'nom2.prenom2@test.com’);
ALTER TABLE etablissement
ADD CONSTRAINT etablissement_ibfk_6
FOREIGN KEY (responsable_id
) REFERENCES responsable
(responsable_id
) ON DELETE CASCADE;
the html demo is :
Etablissement
<link rel="STYLESHEET" type="text/css" href="./codebase/dhtmlx.css">
<script src="./codebase/dhtmlx.js" type="text/javascript"></script>
<script src="./codebase/dhtmlxcontainer.js"></script>
<script src="./codebase/dhtmlxcommon.js"></script>
<link rel="stylesheet" type="text/css" href="./codebase/dhtmlxlayout.css">
<link rel="stylesheet" type="text/css" href="./codebase/skins/dhtmlxlayout_dhx_blue.css">
<script src="./codebase/dhtmlxlayout.js"></script>
<link rel="stylesheet" type="text/css" href="./codebase/dhtmlxtree.css">
<script src="./codebase/dhtmlxtree.js"></script>
<style>
html, body {
width: 100%;
height: 100%;
margin: 0px;
overflow: hidden;
}
</style>
finally the php connector is :
<?php
require_once("./dhtmlxConnector_php/codebase/treemultitable_connector.php");
require_once("./config.php");
$conn=mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_select_db($mysql_db);
$tree = new TreeMultitableConnector($conn,"MySQL");
$tree->setMaxLevel(1);
$level = $tree->get_level();
switch ($level) {
case 0:
$tree->render_sql("SELECT etablissement_id, raison_sociale FROM etablissement WHERE level = 0","etablissement_id","raison_sociale","","");
break;
case 1:
$tree->render_sql("SELECT e.etablissement_id, e.raison_sociale, e.etablissement_idp FROM etablissement e WHERE e.level = 1", "etablissement_id", "raison_sociale", "", "etablissement_idp");
break;
}
?>