par
sadeq » 04 mai 2009, 11:19
Voici, un essai d'hiérarchisation des données dans un tableau multidimensionnel trié:
<pre>
<b>La base de données:</b>
--
-- Structure de la table `classe`
--
-- Création: Lun 04 Mai 2009 à 10:54
-- Dernière modification: Lun 04 Mai 2009 à 10:59
--
CREATE TABLE IF NOT EXISTS `classe` (
`classse` char(20) NOT NULL,
`numero` int(5) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `classe`
--
INSERT INTO `classe` (`classse`, `numero`) VALUES
('90-91', 1),
('90-91', 2),
('91-92', 3),
('91-92', 4);
-- --------------------------------------------------------
--
-- Structure de la table `fichier`
--
-- Création: Lun 04 Mai 2009 à 10:56
-- Dernière modification: Lun 04 Mai 2009 à 10:57
--
CREATE TABLE IF NOT EXISTS `fichier` (
`numero` int(5) NOT NULL AUTO_INCREMENT,
`identite` varchar(50) NOT NULL,
PRIMARY KEY (`numero`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Contenu de la table `fichier`
--
INSERT INTO `fichier` (`numero`, `identite`) VALUES
(1, 'Dupont'),
(2, 'Durand'),
(3, 'Leroy'),
(4, 'Petit');
<hr />
<b>Les données stockées dans un tableau multi-dimentions:</b>
<?php
//Lire les données de la base
$sql = "SELECT classse, f.numero, identite
FROM classe c
JOIN fichier f ON f.numero = c.numero
ORDER BY classse, identite";
$query = mysql_db_query("test", $sql, mysql_connect("localhost", "root"));
$table = array();
while ($query && $row = mysql_fetch_assoc($query)){
$classe = $row["classse"];
$identite = $row["identite"];
$table[$classe][$identite] = $row; // classement par classe et identite
}
mysql_close();
print_r($table);
?>
</pre>
Le tri est réalisé par la requête SQL clause :
ORDER BY classse, identite
Le résultat de ce programme est ce que affiche l'instruction :
print_r($table):
Code : Tout sélectionner
Array
(
[90-91] => Array
(
[Dupont] => Array
(
[classse] => 90-91
[numero] => 1
[identite] => Dupont
)
[Durand] => Array
(
[classse] => 90-91
[numero] => 2
[identite] => Durand
)
)
[91-92] => Array
(
[Leroy] => Array
(
[classse] => 91-92
[numero] => 3
[identite] => Leroy
)
[Petit] => Array
(
[classse] => 91-92
[numero] => 4
[identite] => Petit
)
)
)
Voici, un essai d'hiérarchisation des données dans un tableau multidimensionnel trié:
[php]
<pre>
<b>La base de données:</b>
--
-- Structure de la table `classe`
--
-- Création: Lun 04 Mai 2009 à 10:54
-- Dernière modification: Lun 04 Mai 2009 à 10:59
--
CREATE TABLE IF NOT EXISTS `classe` (
`classse` char(20) NOT NULL,
`numero` int(5) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `classe`
--
INSERT INTO `classe` (`classse`, `numero`) VALUES
('90-91', 1),
('90-91', 2),
('91-92', 3),
('91-92', 4);
-- --------------------------------------------------------
--
-- Structure de la table `fichier`
--
-- Création: Lun 04 Mai 2009 à 10:56
-- Dernière modification: Lun 04 Mai 2009 à 10:57
--
CREATE TABLE IF NOT EXISTS `fichier` (
`numero` int(5) NOT NULL AUTO_INCREMENT,
`identite` varchar(50) NOT NULL,
PRIMARY KEY (`numero`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Contenu de la table `fichier`
--
INSERT INTO `fichier` (`numero`, `identite`) VALUES
(1, 'Dupont'),
(2, 'Durand'),
(3, 'Leroy'),
(4, 'Petit');
<hr />
<b>Les données stockées dans un tableau multi-dimentions:</b>
<?php
//Lire les données de la base
$sql = "SELECT classse, f.numero, identite
FROM classe c
JOIN fichier f ON f.numero = c.numero
ORDER BY classse, identite";
$query = mysql_db_query("test", $sql, mysql_connect("localhost", "root"));
$table = array();
while ($query && $row = mysql_fetch_assoc($query)){
$classe = $row["classse"];
$identite = $row["identite"];
$table[$classe][$identite] = $row; // classement par classe et identite
}
mysql_close();
print_r($table);
?>
</pre>
[/php]
Le tri est réalisé par la requête SQL clause : [b]ORDER BY classse, identite[/b]
Le résultat de ce programme est ce que affiche l'instruction : [b]print_r($table):[/b]
[code]
Array
(
[90-91] => Array
(
[Dupont] => Array
(
[classse] => 90-91
[numero] => 1
[identite] => Dupont
)
[Durand] => Array
(
[classse] => 90-91
[numero] => 2
[identite] => Durand
)
)
[91-92] => Array
(
[Leroy] => Array
(
[classse] => 91-92
[numero] => 3
[identite] => Leroy
)
[Petit] => Array
(
[classse] => 91-92
[numero] => 4
[identite] => Petit
)
)
)
[/code]