Affichage sous forme de tableau qui varie selon les tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage sous forme de tableau qui varie selon les tables

par pinpin » 27 mai 2005, 13:07

Ben en fait j'ai les données exact concernant le nombre de télé conseillé qui restera toujours le même etc ... :)

En fait il y a 10 coachs (Donc je compte créer 10 tables), et chaque coach a sous sa responsabilité 2 groupes de 7 télé-opérateurs (Ce qui donnera 14 lignes à chaque fois)

Et en gros je clic sur le nom d'un coach (donc je change la table), et la il m'affiche un tableau avec les 14 télé-op qui sont en relation avec lui.

Voila le code que j'ai mit en place pour faire ca :
<?php

if(!isset($table))
{
	$table = "tele_op_1";   //Si on a pas passé de var en paramètres, on prend ça par défaut

}

//Cette ligne devra apparaitre 10 fois avec le nom d'un coach différent à chaque fois.
echo "<a href=test.php?table=tele_op_1>tele op 1</a>";


// déclaration de quelques variables
$host = "sql.free.fr";
$user = "****";
$pass = "****";
$bdd = "****";


$mysql_link = @mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données");
$requete = "SELECT * FROM $table";
$result = mysql_db_query($bdd, $requete);

echo "<table>";

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>";

?>
Voila c'est simpliste comme système mais je pense que c'est le mieu que je puisse faire, en tout cas je te remercie énormément pour ton aide sadeq

par sadeq » 27 mai 2005, 12:46

J'ai pas bien compris l'histoire du lien "Télé_opérateur_1", mais bon.

si tu veux dire le lien appliqué sur le nom d'un coach :
il suffit de changer au niveau du lien HREF et da passer le nom coach au lieu de son ID (comme le fait mon exemple) :
echo "<td><A HREF='?id_coach=".$voir["id"]."'>".$voir["nom"]."</A>"; //Lien hyperTexte qui envoi l'id du coach en mode GET 
Tu remplace donc par :
echo "<td><A HREF='?table=".$voir["nom"]."'>".$voir["nom"]."</A>";
Mais il faut savoir pourquoi j'ai choisi de transmettre l'ID au lieu du nom!
En fait toi, tu transmets le nom car tu veux accèder à une table spécifique au télé-opérateurs d'un coach séléctionné. Mais ça c'est un véritable problème car ceci implique que tu dois créer une table pour chaque groupe de télé-opérateurs d'un coach. si t'as 100 coach t'aura à créer 100 tables (de même structure) et ce n'ai pas bon.
Moi j'ai opté pour une méthode relationnelle plus simple et plus conviviale : à savoir que les télé-opérateurs sont renseignés dans une seule table "télé-opérateur" et c'est grâce à l'ID d'un coach qu'on peut selectionner les téléopérateurs d'un coach.

Mais c'est comme tu veux, c'est toi le maître.

par pinpin » 27 mai 2005, 11:00

J'ai un problème tout bète la, et je ne m'étais pas posé la question en fait ...
Donc pour l'affichage tout est ok, c'est exactement comme je voulais, j'ai un peut modifier ce que tu m'as fournis sadeq et cela correspond à ce que je voulais :)

Mais bon j'ai regardé dans les tutoriaux php et j'ai pas trouvé ... En fait je souhaite simplement que lorsque je clic sur un lien, la variable que je souhaite prenne la valeur que je souhaite ...

Par exemple j'ai ma variable $table, et moi je veux que quand je clic sur le lien "Télé-Opérateur 1", que sa fasse $table="tele_op_1";

Voila voila :/

par sadeq » 26 mai 2005, 16:01

C'est sur la base de cette proposition qu'on peut discuter, ce programme n'est qu'un exemple.
Tu vas surement le modifier mais il va te guider dans la suite.
Bon courage.

par pinpin » 26 mai 2005, 15:38

Erf je demandais pas que quelqu'un fasse tout le travail à ma place, je voulais juste des indications pour la réalisation du tableau!
En tout cas je te remercie beaucoup beaucoup pour ton aide :)

Je vais d'ici la tester tout ca ^^

Encore merci.

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');

par pinpin » 26 mai 2005, 14:32

bon voila j'ai fait une partie du code en fesant pas mal de recherche sur le net, mais bon j'ai pas trouvé comment mettre ca en place dans un tableau tout beau :(

Code : Tout sélectionner

<?php // déclaration de quelques variables $host = "sql.free.fr"; $user = "toto"; $pass = "zéro"; $bdd = "Coach"; $table = "Nom_du_coach"; $mysql_link = @mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données"); $requete = "SELECT * FROM $table"; $result = mysql_db_query($bdd, $requete); echo "<table>"; echo "<tr><td> <font face='Verdana' size='2'> Prénom | Nom | Pseudonyme | Login | Compétence | Extension | Contrat] | Co_Voiturage | Commentaires </font></td> </tr>"; while ($voir = mysql_fetch_array($result)) { echo "<tr><td> <font face='Verdana' size='2'> ".$voir[Prénom]." | ".$voir[Nom]." | ".$voir[Pseudonyme]." | ".$voir[Login]." | ".$voir[Compétence]." | ".$voir[Extension]." | ".$voir[Contrat]." | ".$voir[Co_Voiturage]." | ".$voir[Commentaires]." </font></td> </tr>"; } echo "</table>"; ?>
Pour l'instant j'ai pas établit le truc avec le choix de chaque coach, mais c'est pas le plus difficile, en fait je voudrais juste faire le tout en affichage sur un tableau :)

Affichage sous forme de tableau qui varie selon les tables

par pinpin » 26 mai 2005, 11:22

Bonjour.

Je souhaite réalisé une interface pour faire un affichage sous forme de tableau de plusieurs données.

En fait dans mon cas les table correspondent à des noms de coach, et chacun de ces coach a à sa disposition 8 télé-conseillé.

Les données concernant les télé-conseillé sont le nom, le prénom, le pseudo, et divers notation. Ce que je souhaite faire c'est que lorsque l'on clic sur le nom d'un coach, toute la liste des télé-conseillé sous son control s'affiche avec toutes les données les concernant, le tout sous forme de tableau.

Pour la présentation sa devrait faire un truc dans ce genre :

Nom du coach

_________________________________________
Nom | Prénom | Pseudo | note |
---------------------------------------------------------|
Dupon | Jean | télé-conseillé 1 | 58% |
---------------------------------------------------------|
... |
---------------------------------------------------------|
Rapetout | toto | télé-conseillé 8 | 62%|
---------------------------------------------------------|

Pour la mise en ouvre je vais afficher le nom de chaque coach qui sont tous connue, puis lorsque on clic dessus sa initialise la variable $table avec le nom qui correspond, et il rafraichit la page avec les nouvelles données.
Voila donc j'aimeré avoir un petit coup de pouce, car mon niveau en php est assez bas, et faire ca pour l'afficher dans un tableau ce n'est pas dans mes compétences :/

Voila dans l'attente de réponse, merci.