Lire les données d'une table [Résolu]

sephrodiaz - 30 sept. 2014 à 23:15 - Dernière réponse : jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention
- 1 oct. 2014 à 00:34
Bonjour, j'ai dernièrement créer un site et j'aimerais y rajouter un petit quelques choses mais j'ignore comment m'y prendre...
Pour commencer, lorsque les gens rentrent sur mon site web, ils doivent remplir un formulaire a menu déroulant... ce formulaire est relié a une base de donnée... Dans un onglet spécifique, j'ai relié, en php, un tableau qui lit les informations que les gens rentrent dans le formulaire (donc relié a la table mysql)...

Mais j'aimerais que cela soit plus beau... Donc j'aimerais qu'il y est des images spécifiques pour chaque choix... Je m'explique... Admettons que la question 1 est : Votre pays préféré. Il y a donc 3 choix soit Canada, France et États-Unis. J'aimerais que donc que l'affichage des données soient différente... Lorsque nous choissions canada par exemple, j'aimerais que sa soit un image spécifique qui apparaise (drapeau par exemple) au lieu du simplet texte dans le tableau...

J'ai de bonnes connaisances. Merci de votre aide.
Afficher la suite 

11 réponses

Répondre au sujet
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 30 sept. 2014 à 23:23
0
Utile
Bonjour
Tu veux que tes images apparaissent lors de la sélection dans les liste ou après validation de ton formulaire ?

Si c'est pendant. ..c'est du javascript qu'il te faut ...

Commenter la réponse de jordane45
Sephrodiaz - 30 sept. 2014 à 23:25
0
Utile
1
Non seulement suite aux selections... Dans le tableau des reponses qui est relie a la table en php... Mais sa donne qu'un tableau pas hyper joli... J'aime rendre tout celanun peu plus dynamique...

Je ne sais pas si je suis super precis.
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 30 sept. 2014 à 23:30
Il faudrait que tu nous montres ton code pour qu'on puisse mieux comprendre ce que tu souhaites faire.

NB : Pour poster du code.. penses à utiliser les BALISES DE CODE.
Informations disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Commenter la réponse de Sephrodiaz
sephrodiaz - 30 sept. 2014 à 23:41
0
Utile
Suite a ce code, la page affiche dans un tableau les réponses données par les personnes... Ce que je veux : lorsque les gens prennent par exemple : Canada dans choix 1 (groupe1), ce soit une image spécifique pour le Canada qui apparaise au lieu de CANADA.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TestWeb</title>
<style type="text/css">
table {
border: medium solid #6495ed;
border-collapse: collapse;
width: 50%;
}
th {
font-family: monospace;
border: thin solid #000;
width: 50%;
padding: 5px;
background-color: #6495ed;
}
td {
font-family: sans-serif;
border: thin solid #000;
width: 50%;
padding: 5px;
text-align: center;
background-color: #fff;
}
caption {
font-family: sans-serif;
color:#fff;
}
body {
background-color: #999;
text-align: center;
}
</style>
</head>

<body>
<p><a href="/index.html"><img src="back.png" width="81" height="95" /></a>
</p>
<p> <?php
// On se connecte au serveur de bases de données.
// Adapter le nom d'hote où se trouve le serveur mysql
$lienBD = mysqli_init();
mysqli_real_connect($lienBD, ', "", ", '')
or die('Impossible de se connecter à mysql (): ' . mysql_error());
echo '';

// Récupération de toutes les adresses (requête SQL) :
$requete = 'SELECT * FROM formulaire';
$result = mysqli_query($lienBD, $requete) or die('Query failed: ' . mysql_error());

// Affichage des résultats
echo "<table>\n";
// en-tête de la table :
echo "\t<tr>\n";
echo "\t\t<th>Nom</th>\n";
echo "\t\t<th>Groupe</th>\n";
echo "\t\t<th>Confirm.</th>\n";
echo "\t\t<th>Choix 1</th>\n";
echo "\t\t<th>Choix 2</th>\n";
echo "\t\t<th>Choix 3</th>\n";
echo "\t\t<th>Choix 4</th>\n";
echo "\t\t<th>Choix 5</th>\n";
echo "\t\t<th>Choix 6</th>\n";
echo "\t\t<th>Choix 7</th>\n";
echo "\t\t<th>Choix 8</th>\n";
echo "\t\t<th>Choix 9</th>\n";
echo "\t\t<th>Choix 10</th>\n";
echo "\t\t<th>Choix 11</th>\n";
echo "\t\t<th>Choix 12</th>\n";
echo "\t\t<th>Choix 13</th>\n";
echo "\t\t<th>Choix 14</th>\n";
echo "\t\t<th>Choix 15</th>\n";
echo "\t\t<th>Choix 16</th>\n";
echo "\t\t<th>Choix 17</th>\n";
echo "\t\t<th>Choix 18</th>\n";

echo "\t</tr>\n";
// Récupération de chaque ligne du résultat de la requête
// avec des indices associatifs (chaînes de caractères)
while ($ligneResReq = mysqli_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
// affichage de la ligne
echo "<td>".$ligneResReq['nom']."</td>";
echo "<td>".$ligneResReq['groupe']."</td>";
echo "<td>".$ligneResReq['confirm']."</td>";
echo "<td>".$ligneResReq['groupe1']."</td>";
echo "<td>".$ligneResReq['groupe2']."</td>";
echo "<td>".$ligneResReq['groupe3']."</td>";
echo "<td>".$ligneResReq['groupe4']."</td>";
echo "<td>".$ligneResReq['groupe5']."</td>";
echo "<td>".$ligneResReq['groupe6']."</td>";
echo "<td>".$ligneResReq['groupe7']."</td>";
echo "<td>".$ligneResReq['groupe8']."</td>";
echo "<td>".$ligneResReq['groupe9']."</td>";
echo "<td>".$ligneResReq['groupe10']."</td>";
echo "<td>".$ligneResReq['groupe11']."</td>";
echo "<td>".$ligneResReq['groupe12']."</td>";
echo "<td>".$ligneResReq['groupe13']."</td>";
echo "<td>".$ligneResReq['groupe14']."</td>";
echo "<td>".$ligneResReq['groupe15']."</td>";
echo "<td>".$ligneResReq['groupe16']."</td>";
echo "<td>".$ligneResReq['groupe17']."</td>";
echo "<td>".$ligneResReq['groupe18']."</td>";


echo "\t</tr>\n";
}
echo "</table>\n";

// Libération des résultats en mémoire
mysqli_free_result($result);

// fermeture de la connection
mysqli_close($lienBD);
?></p>
</body>
</html>
Commenter la réponse de sephrodiaz
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 1 oct. 2014 à 00:04
0
Utile
2
Bon

Déjà.. sors le CSS de ta page et mets le dans un fichier CSS à part.

Donc.. tout ce qui est entre les balises STYLE
table {
border: medium solid #6495ed;
border-collapse: collapse;
width: 50%;
}
th {
font-family: monospace;
border: thin solid #000;
width: 50%;
padding: 5px;
background-color: #6495ed;
}
td {
font-family: sans-serif;
border: thin solid #000;
width: 50%;
padding: 5px;
text-align: center;
background-color: #fff;
}
caption {
font-family: sans-serif;
color:#fff;
}
body {
	background-color: #999;
	text-align: center;
}


Idem pour la connexion à la BDD...
Place le code de connexion dans un autre fichier...

Ensuite...

Quand je vois ta requête et par la suite le nom des CHAMPS que tu récupères dans ton code PHP.. j'ai l'impression que tu as mal dessiné ta Base de données.

Pourrais tu nous en donner la structure ?
( éventuellement.. dans PhpMyadmin ou via un logiciel comme HeidiSql .. tu peux faire un
show create formulaire


Et je pense... que le mieux serait de découper ta table formulaire en plusieurs....
Par exemple (mais sans connaitre l'utilité de tes différents champs il m'est difficile de te proposer mieux pour l'instant..)

Une table people (id_user,nom_user,....)
Une table groupes (id_groupe,nom_groupe)
Une table formulaire (id_formulaire,id_user,id_groupe)
Une table Choix (id_choix,id_formulaire,libelle_item...)


Bon.. passons maintenant à ta question initiale...
Comment afficher une image qui dépend du choix de l'utilisateur...

Et bien.. prenons par exemple le PAYS ( que tu as dans une liste déroulante...)

=> Cette liste est alimentée aussi par la Base de données ou tu as écris en "DUR'" dans le code les différents choix ??
===>> Le mieux.. serait de les mettre dans la BDD
donc une table : pays (id_pays,nom_pays,image_pays)
=> image_pays est un champ de type varchar ... qui contiendra l'emplacement de l'image sur ton serveur.. par exemple

"./images/canada.png"

... et donc... lorsque l'utilisateur choisira le Pays dont l' ID est 5 par exemple.... tu pourras afficher l'image correspondante...


Pour résumer (ben oui.. j'ai écris plein de choses..)
1 - Donnes nous la structure de ta table (avec un exemple de ce qu'elle contient eventuellement)

2 - Dis nous à quoi correspondent tous les 'groupe1' 'groupe2' etc... et les autres champs de ta table.

3 - Repense ton modèle de BDD en découpant en plusieurs tables.. (une table représente en quelque sorte un "objet" .. par exemple... un FORMULAIRE... contient un/ou plusieurs choix...un choix contenant un ou plusieurs PAYS etc... le lien entre chaque se faisant via leur ID )
















Merci pour ta réponse. Je crois que je vais laisser tomber cette idée... comme mon site doit être opérationnel pour Jeudi, je ne crois pas vouloir me relancer dans la configuration complète de ma base de donnée...

Merci quand meme de ton aide, bonne soirée.
Et oui, effectivement, les choix de reponses sont encré dans le code HTML des menus déroulant... ensuite les donné se rendre dans ma base de donnée avec une entrée varchar.
Commenter la réponse de jordane45
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - Modifié par jordane45 le 1/10/2014 à 00:25
0
Utile
3
Bon ben au pire.. mais c'est franchement pas PRO.. tu peux utiliser des IF (ou un switch case) dans ton code...

Imaginons que le choix du pays.. soit entré dans le champ 'groupe1'
$pays = $ligneResReq['groupe1'];

switch ($pays){
case "Canada":
$imgPays = "./images/canada.png";
break;
case "France":
$imgPays = "./images/france.png";
break;
case else:
$img="";
break;
}

$image = isset($img) && $img !='' ?"<img src='".$img."' title='".$pays."'>" :'';
echo "<td>".$image."</td>";

Effectivement, je n'avais pas pensé pouvoir le faire de cette technique, mais deja que j'Ai fait mon code a l'arrache, sa va etre vraiment pas pro!

Merci!
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 1 oct. 2014 à 00:34
La prochaine fois... pense que le DEV c'est avant tout 80% de réflexion ...et seulement 20% d'écriture de code....

Il faut réfléchir à la structure de la BDD.... penser à comment et quoi afficher ...comment seront structurées les pages du site..etc...
Et seulement après..(l'idéal étant d'écrire un cahier des charges ou.. si tu veux utiliser une méthodologie comme AGILE par exemple... des user stories (les différentes fonctionnalités) ) tu commences à coder..
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 1 oct. 2014 à 00:34
PS: Pense à clore le sujet en cliquant sur le lien : Marquer comme résolu en haut.. sous le titre de ta question.
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.