par
sadeq » 26 mai 2005, 15:31
Voici une reprise de ton code qui permet de faire ce que tu veux. La structure de la base de données est données en bas.
Le truc est simple : une liste des cochs s'affiche sous forme de liens hypertextes dont chcun affiche le nom et transmet l'id d'un coach.
La même page reçoit l'id séléctionné par le lien, intérroge la base et décide d'afficher la liste des télé-opérateurs affiliés au coch (la liaison télé-opérateur et coach se fait grâce à l'id du coach.
Voici donc le programme coach.php :
<?php
// déclaration de quelques variables
$host = "localhost";
$user = "root";
$pass = "";
$bdd = "Coach";
//Récupérer le dernier id coach séléctionné par un lien hypertexte
$id = isset($_GET["id_coach"])?$_GET["id_coach"]:null;
//Toujours se connecter à MYSQL
$mysql_link = @mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données");
//Toujours Afficher la liste des coach (s'ils existent)
$requete = "SELECT * FROM coachs";
$result = mysql_db_query($bdd, $requete)or die("Impossible de se connecter à la base de données");
if ($result){
$compteur_coachs = 0;
$cols_par_ligne = 5; //sert à organiser l'affichage de 5 noms par ligne
echo "<table><font face='Verdana' size='2'>";
while ($voir = mysql_fetch_array($result)) {
if ( $compteur_coachs % $cols_par_ligne == 0 ) echo "<tr>"; //retour à la ligne
echo "<td><A HREF='?id_coach=".$voir["id"]."'>".$voir["nom"]."</A>"; //Lien hyperTexte qui envoi l'id du coach en mode GET
$compteur_coachs ++;
}
echo "</font></table>";
}
//Seulement si un id coach est séléctionné : Affichages des télé-conseillés de ce coach
if ($id != null){
$requete = "SELECT * FROM tele_op WHERE id=$id"; //Recherche par id coach (clé primaire = plus rapide)
$result = mysql_db_query($bdd, $requete);
//Si des télé-opérateurs existent : les afficher
if ($result) {
echo "<table border><font face='Verdana' size='2'>";
echo "<tr><th>Prénom<th>Nom<th>Pseudonyme
<th>Login<th>Compétence<th>Extension
<th>Contrat<th>Co_Voiturage<th>Commentaires";
while ($voir = mysql_fetch_assoc($result)) {
echo "<tr><td>".$voir["Prénom"]
."<td>".$voir["Nom"]."<td>".$voir["Pseudonyme"]
."<td>".$voir["Login"]."<td>".$voir["Compétence"]
."<td>".$voir["Extension"]."<td>".$voir["Contrat"]
."<td>".$voir["Co_Voiturage"]."<td>".$voir["Commentaires"];
}
echo "</font></table>";
}
}
?>
Et la structure de la base utilisée :
--
-- Structure de la table `tele_op`
--
CREATE TABLE `tele_op` (
`id` int(11) NOT NULL auto_increment,
`Nom` varchar(20) NOT NULL default '',
`Prénom` varchar(20) NOT NULL default '',
`Pseudonyme` varchar(20) NOT NULL default '',
`Login` varchar(20) NOT NULL default '',
`Compétence` varchar(30) NOT NULL default '',
`Extension` varchar(30) NOT NULL default '',
`Contrat` varchar(30) NOT NULL default '',
`Co_Voiturage` varchar(30) NOT NULL default '',
`Commentaires` varchar(255) NOT NULL default '',
`id_coach` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `id_coach` (`id_coach`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `tele_op`
--
INSERT INTO `tele_op` VALUES (1, 't1', 't1', 'pt1', 't1', 'ct1', 'ext1', 'ct1', 'cvt1', 'comt1', 1);
INSERT INTO `tele_op` VALUES (2, 't2', 't2', 'pt2', 't2', 'ct2', 'ext2', 'ct2', 'cvt2', 'comt2', 1);
--
-- Structure de la table `coachs`
--
CREATE TABLE `coachs` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `coachs`
--
INSERT INTO `coachs` VALUES (1, 'toto');
INSERT INTO `coachs` VALUES (2, 'popo');
Voici une reprise de ton code qui permet de faire ce que tu veux. La structure de la base de données est données en bas.
Le truc est simple : une liste des cochs s'affiche sous forme de liens hypertextes dont chcun affiche le nom et transmet l'id d'un coach.
La même page reçoit l'id séléctionné par le lien, intérroge la base et décide d'afficher la liste des télé-opérateurs affiliés au coch (la liaison télé-opérateur et coach se fait grâce à l'id du coach.
Voici donc le programme coach.php :
[php]<?php
// déclaration de quelques variables
$host = "localhost";
$user = "root";
$pass = "";
$bdd = "Coach";
//Récupérer le dernier id coach séléctionné par un lien hypertexte
$id = isset($_GET["id_coach"])?$_GET["id_coach"]:null;
//Toujours se connecter à MYSQL
$mysql_link = @mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données");
//Toujours Afficher la liste des coach (s'ils existent)
$requete = "SELECT * FROM coachs";
$result = mysql_db_query($bdd, $requete)or die("Impossible de se connecter à la base de données");
if ($result){
$compteur_coachs = 0;
$cols_par_ligne = 5; //sert à organiser l'affichage de 5 noms par ligne
echo "<table><font face='Verdana' size='2'>";
while ($voir = mysql_fetch_array($result)) {
if ( $compteur_coachs % $cols_par_ligne == 0 ) echo "<tr>"; //retour à la ligne
echo "<td><A HREF='?id_coach=".$voir["id"]."'>".$voir["nom"]."</A>"; //Lien hyperTexte qui envoi l'id du coach en mode GET
$compteur_coachs ++;
}
echo "</font></table>";
}
//Seulement si un id coach est séléctionné : Affichages des télé-conseillés de ce coach
if ($id != null){
$requete = "SELECT * FROM tele_op WHERE id=$id"; //Recherche par id coach (clé primaire = plus rapide)
$result = mysql_db_query($bdd, $requete);
//Si des télé-opérateurs existent : les afficher
if ($result) {
echo "<table border><font face='Verdana' size='2'>";
echo "<tr><th>Prénom<th>Nom<th>Pseudonyme
<th>Login<th>Compétence<th>Extension
<th>Contrat<th>Co_Voiturage<th>Commentaires";
while ($voir = mysql_fetch_assoc($result)) {
echo "<tr><td>".$voir["Prénom"]
."<td>".$voir["Nom"]."<td>".$voir["Pseudonyme"]
."<td>".$voir["Login"]."<td>".$voir["Compétence"]
."<td>".$voir["Extension"]."<td>".$voir["Contrat"]
."<td>".$voir["Co_Voiturage"]."<td>".$voir["Commentaires"];
}
echo "</font></table>";
}
}
?> [/php]
Et la structure de la base utilisée :
[php]
--
-- Structure de la table `tele_op`
--
CREATE TABLE `tele_op` (
`id` int(11) NOT NULL auto_increment,
`Nom` varchar(20) NOT NULL default '',
`Prénom` varchar(20) NOT NULL default '',
`Pseudonyme` varchar(20) NOT NULL default '',
`Login` varchar(20) NOT NULL default '',
`Compétence` varchar(30) NOT NULL default '',
`Extension` varchar(30) NOT NULL default '',
`Contrat` varchar(30) NOT NULL default '',
`Co_Voiturage` varchar(30) NOT NULL default '',
`Commentaires` varchar(255) NOT NULL default '',
`id_coach` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `id_coach` (`id_coach`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `tele_op`
--
INSERT INTO `tele_op` VALUES (1, 't1', 't1', 'pt1', 't1', 'ct1', 'ext1', 'ct1', 'cvt1', 'comt1', 1);
INSERT INTO `tele_op` VALUES (2, 't2', 't2', 'pt2', 't2', 'ct2', 'ext2', 'ct2', 'cvt2', 'comt2', 1);
--
-- Structure de la table `coachs`
--
CREATE TABLE `coachs` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `coachs`
--
INSERT INTO `coachs` VALUES (1, 'toto');
INSERT INTO `coachs` VALUES (2, 'popo');
[/php]