Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2011, 12h19   #1
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Par défaut Relation entre 2 listes liées alimentées avec bdd avec l'affichage dans un tableau HTML

Bonjour à tous,
J'ai un petit logiciel de 2 listes déroulantes liées et alimentées par bdd qui fonctionne très bien, mais je voudrais que les résultats d'une requête affiche les données d'une autre table"coordonnees" provenant d'une autre bdd dans le tableau html. Malheureusement il m'affiche toujours le message d'erreur:
Code :
1
2
3
4
 
Notice: Undefined index: nom_categorie in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\Tab.php on line 41
 
Notice: Undefined index: nom_selection in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\Tab.php on line 41
Ci-joint :listeslieesBis.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
// Connexion à la base
 
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
 
 
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
?>
 
<?php
// initialisation/recuperation de la selection
// categorie
if (isset($_GET['categorie'])){
	$categorie= $_GET['categorie'];
} elseif (isset($_POST['selectcategorie'])){
	$categorie = $_POST['selectcategorie'];
} else {
	$categorie = '';
}
// selection
if (isset($_POST['selectselection'])){
	$selection = $_POST['selectselection'];
} else {
	$selection = '';
}
?>
 
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
	<title>Document sans titre</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
	<script type="text/javascript">
	function modifcombo()
	{
		var id_categorie = document.form1.selectcategorie.value;
		document.location.replace("listeslieesBis.php?categorie=" + id_categorie );
	}
	</script>
 
</head>
 
<body>
 
	<p>Essai formulaire</p>
 
	<form name="form1" method="post" action="Tab.php">
	<table width="100%" border="1">
	<tr>
	    <td>categorie:</td>
		<td>
			<select id="idselectcategorie" name="selectcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php			// Execution requete : tous les categories
				$ma_req = "SELECT * FROM T_CATEGORIES;";					  
				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
 
				// Affectation des variables utilisees pour l'affichage
				if (mysql_num_rows($res_req)!=0) { // resultat non vide
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_categorie = $une_ligne["id_categorie"];
						$nom_categorie = $une_ligne["nom_categorie"];
						$sel_categorie = ($id_categorie == $categorie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
		<td>selection :</td>   
        <td>
			<select id="idselectselection" name="selectselection" class="txt16-000000">		
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	  		// Execution requete : les selection des catégories selectionnées 
				$ma_req = "SELECT * FROM T_SELECTIONS WHERE id_categorie = '".$categorie."';";
				$res_req = mysql_query($ma_req) or die("Selection table \"T_SELECTIONS\" impossible");
				// Affectation des variables utilis?es pour l'affichage
				if (mysql_num_rows($res_req)!=0) // resultat non vide
				{  
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_selection = $une_ligne["id_selection"];
						$nom_selection = $une_ligne["nom_selection"];
						$sel_selection = ($id_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
        <td colspan="2">
			<input type="submit" name="envoyer" value="envoyer" />
		</td>
	</tr>
	</table>
	</form>
 
</body>
</html>
et le code: Tab.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
<?php
 
 if (isset($_POST['envoyer'])) 
{
	function Verif_magicquotes ($chaine)
	    {
	        if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
 
	        return $chaine;
	    } 
 // Récupération des valeurs des champs du formulaire 
	$message = array();
 
 //$categorie = $_POST['selectcategorie'];
	$id_categorie = isset($_POST['selectcategorie']) && trim($_POST['selectcategorie']) != '' ? Verif_magicquotes(ucfirst(trim($_POST['selectcategorie']))) : null;
 if ($id_categorie=$_POST['selectcategorie']);
	$selection = isset($_POST['selectselection']) && trim($_POST['selectselection']) != '' ? Verif_magicquotes(ucfirst(trim($_POST['selectselection']))) : null;
 	echo $_POST['selectcategorie'];
	echo $_POST['selectselection'];
 
	if (!isset($selection))
	    {
		     $message[] = 'Veuillez choisir une option dans la seconde liste déroulante';
		}  
	}
    if (isset($message) && count($message) == 0) 
	// connexion à la base de données
try
{
//echo'<strong>Faites votre choix dans la liste :</strong>';
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
 
$pass = '';
$db = 'clients';
 
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
       $select = "SELECT * FROM coordonnees WHERE  cat='$_POST[nom_categorie]' AND selection='$_POST[nom_selection]'";
 
 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
 
// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
	echo $selection;
    echo '<table bgcolor="FFFFFF">'."\n";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '<tr>';
		echo '<td bgcolor="#669999"><b><u>id</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>cat</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>selection</u></b></td>';
 
        echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>prenom</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>numtel</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>codepostal</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>ville</u></b></td>';
		echo '</tr>'."\n";
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
		echo '<td bgcolor="#CCCCCC">'.$row["id"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["cat"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["selection"].'</td>';
        echo '<td bgcolor="#90EE90">'.$row["nom"].'</td>';
        echo '<td bgcolor="#90EE90">'.$row["prenom"].'</td>';
		echo '<td bgcolor="#9ACD32">'.$row["numtel"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["codepostal"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["ville"].'</td>';
		echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
 
// on libère le résultat
mysql_free_result($result);
}
catch(Exception $e)
{
    // En cas d'erreur précédemment, on affiche un message et on arrête tout
    die('Erreur : '.$e->getMessage());
}
 
 
?>
Quelqu'un peut-il m'aider à résoudre ce problème car j'avoue que l'index indéfini de nom_categorie et nom_selection me laisse perplexe?
Sincères remerciements
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 12h51   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonsoir,

Citation:
$select = "SELECT * FROM coordonnees WHERE cat='$_POST[nom_categorie]' AND selection='$_POST[nom_selection]'";
Tu n'as pas d'élément avec le name nom_selection dans ton formulaire.
Code :
$select = "SELECT * FROM coordonnees WHERE  cat='".$_POST["selectcategorie"]."' AND selection='".$_POST["nom_selectselection"]."'";
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 17h45   #3
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
bonjour Andry.aime
merci pour cette réponse rapide mais malheureusement cela ne fonctionne pas. j'ai une nouvelle erreur: idex inconnu de nom_selectselection.
J'ai donc transformé avec:
Code :
$select = "SELECT * FROM coordonnees WHERE  cat='".$_POST["selectcategorie"]."' AND selection='".$_POST["selectselection"]."'";
il n'y a plus d'erreur mais il m'affiche:"'Pas d\'enregistrements dans cette table..." ce qui est faux puisqu'il y en a 6.
Je crois que c'est normal car :
Code :
1
2
echo $_POST['selectcategorie'];
	echo $_POST['selectselection'];
cela affiche1 ce qui correspond a l'id dans la table T_categorie correspondant au nom_catégorie de la même table
et de nouveau 1 ce qui correspond à l'id dans la tableT_selection correspondant au nom_selection de cette même table
Or dans la base de données "coordonnees" 'cat' est un nom d'une catégorie et non une id et "idem pour selection
Je ne suis pas capable de retrouver les variables nom_categorie et nom_selection dans le javascript ou y a-t-il lieu de modifier alors que les deux listes liées fonctionnent très bien?
Votre aide me serait précieuse.
Merci
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 19h28   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour Claudine,
voila pourquoi je t'avais conseillé d'utiliser des NOMS DE VARIABLES EXPLICITES (pour éviter les confusions).
Code :
1
2
3
4
5
6
7
8
9
10
			<select id="idselectcategorie" name="selectcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
				<!-- ........... -->
				<option value="<?php echo $id_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
				<!-- ........... -->
			</select>
			<select id="idselectselection" name="selectselection" class="txt16-000000">		
				<!-- ........... -->
				<option value="<?php echo $id_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
				<!-- ........... -->
			</select>
Citation:
name="selectcategorie" -> value="<?php echo $id_categorie; ?>" -> $_POST['selectcategorie'] récupère id_categorie (de la table T_CATEGORIES)
name="selectselection" -> value="<?php echo $id_selection; ?>" -> $_POST['selectselection'] récupère id_selection (de la table T_SELECTIONS)
Comme le vois que tu as une nouvelle table "coordonnees" :
=> peux-tu nous donner la structure et les champs de tes 3 tables ?

Plus précisément, qu'enregistres-tu dans "coordonnees" :
- id_categorie ou nom_categorie ?
- id_selection ou nom_selection ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 22h30   #5
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Bonsoir Jreaux62,
Très heureux de vous relire.
La structure de la table"coordonnees" est la suivante:
id , motdepasse , cat , selection , nom, prenom , numtel , codepostal , ville .
le 'cat' correspond aux choix des catégories choisies par les clients
la "selection" correspond aux choix des sélections choisies par les clients.

Il faudrait donc que la catégorie choisie dans les listes liées(nom_catégorie) corresponde à 'cat' dans la table"coordonnes" et de même pour la selection.
Le problème c'est que le javacript reprend les id des catégories et sélections et non les noms!
Sincères remerciements
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 22h37   #6
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Comme je l'ai expliqué ci-dessus, c'est défini de cette manière dans les select : on récupère les 2 ids !

Si tu veux récupérer les noms, alors il faut :
- SOIT modifier les 2 selects pour récupérer directement les noms (et le reste du code en conséquence),
- SOIT récupérer les noms A PARTIR des 2 ids récupérés (2 requêtes à faire).

TOUT n'est qu'une question de BONNE CONCEPTION.
Et une BONNE CONCEPTION découle de BONS CHOIX.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 16h13   #7
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Bonjour Jreaux62,
merci pour ces conseils.
J'ai essayé en récupérant les noms A PARTIR des 2 ids récupérés (2 requêtes à faire). mais, j'ai toujours le même message:index indéfini pour nom_categorie
Ci-joint ce que j'ai essayé de réaliser : j'arrive à afficher les valeurs des noms(categorie et selection) grâce aux deux requêtes mais je n'arrive pas à récupérer ces valeurs pour les utiliser dans la dernière requête
Code :
$select = "SELECT * FROM coordonnees WHERE cat='$_POST[nom_categorie]' AND selection='$_POST[nom_selection]'";
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
 
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
 
 
 
 if (isset($_POST['envoyer'])) 
{
	function Verif_magicquotes ($chaine)
	    {
	        if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
 
	        return $chaine;
	    } 
 // Récupération des valeurs des champs du formulaire 
//	$message = array();
	if (isset( $_POST ['nom_categorie'])){
	$categorie= $_POST['nom_categorie'];
	}
 
    if (isset( $_POST ['nom_selection'])){
	$categorie= $_POST['nom_selection'];
	}
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
 
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = "SELECT nom_categorie FROM T_CATEGORIES where id_categorie= '$_POST[selectcategorie]'"; 
 
 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
 
// si on a récupéré un résultat on l'affiche.
if($total) {
 
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
      echo '<td bgcolor="#CCCCCC">'.$row['nom_categorie'].'</td>';
 
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
 
// on libère le résultat
mysql_free_result($result);
}
 
 
 
 
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
 
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = "SELECT nom_selection FROM T_SELECTIONS where id_selection= '$_POST[selectselection]'"; 
 
 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
 
// si on a récupéré un résultat on l'affiche.
if($total) {
 
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
 
      //  echo ''.$row['nom_selection'].'</td>';
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
 
// on libère le résultat
mysql_free_result($result);
 
 
?>
<?php
 // Récupération des valeurs des champs du formulaire 
	$message = array();
    if (isset( $_POST ['nom_categorie'])){
	$categorie= $_POST['nom_categorie'];
	}
	echo '<>'.$row['nom_categorie'].'</td>';
$host = 'localhost';
$user = 'root';
 
$pass = '';
$db = 'clients';
 
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
   //    $select = "SELECT * FROM coordonnees WHERE  cat='$_POST[nom_categorie]' AND selection='$_POST[nom_selection]'";
       $select = "SELECT id,cat,selection,nom,prenom,numtel,codepostal,ville FROM coordonnees WHERE  cat='".$_POST["nom_categorie"]."' AND selection='".$_POST["nom_selection"]."'";
 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
 
// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
	//echo $selection;
    echo '<table bgcolor="FFFFFF">'."\n";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '<tr>';
		echo '<td bgcolor="#669999"><b><u>id</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>cat</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>selection</u></b></td>';
 
        echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>prenom</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>numtel</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>codepostal</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>ville</u></b></td>';
		echo '</tr>'."\n";
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
		echo '<td bgcolor="#CCCCCC">'.$row["id"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["cat"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["selection"].'</td>';
        echo '<td bgcolor="#90EE90">'.$row["nom"].'</td>';
        echo '<td bgcolor="#90EE90">'.$row["prenom"].'</td>';
		echo '<td bgcolor="#9ACD32">'.$row["numtel"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["codepostal"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["ville"].'</td>';
		echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
 
// on libère le résultat
mysql_free_result($result);
?>
Voulez-vous m'aider s.v.p?
sincères remerciements
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 17h08   #8
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour Claudine,
loin de moi l'idée d'être blessant ou vexant, mais...
ton code est un peu n'importe quoi, voire même (au choix) : "la foire du slip !" / "le jour des soldes !" / "la braderie de Lille !"
Il faut comprendre ce que tu fais. Coller des bouts de code "au pif" apporte rarement le résultat espéré.

1/ $_POST['nom_categorie'] => toujours pas... (déjà dit par andry.aime)
Du formulaire, on ne récupère QUE :
$_POST['selectcategorie'] et $_POST['selectselection']

2/ Il faut TOUJOURS PROTEGER sa Bd des injections SQL
Code :
1
2
3
4
5
6
// recuperation de nom_categorie A PARTIR de $_POST[selectcategorie]
$cat_select = "SELECT nom_categorie FROM T_CATEGORIES WHERE id_categorie= '" . mysql_real_escape_string($_POST['selectcategorie']) . "';"; 
$cat_result = mysql_query($cat_select,$link) or die ('Erreur : '.mysql_error() );
$cat_row =  mysql_fetch_array($cat_result);
$nom_categorie = $cat_row['nom_categorie']; // => QU'ON POURRA ALORS UTILISER dans la requête sur la table "coordonnees"
// idem pour nom_selection
=> revois ton code à tête reposée, écris les évènements dans le bon ordre d'execution, et ça ira mieux.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2011, 09h01   #9
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Bonjour Jreaux62,
Au-delà de toutes polémiques inutiles(liste à choix multiples),J'ai suivi vos conseils et tout particulièrement les 6 dernières lignes qui m'ont permises de pouvoir afficher toutes les coordonnées voulues dans le tableau html. C'était relativement simple, mais je ne pouvais exprimer la routine des 3 dernières lignes avec le row!
Je comprends votre irritation face à tant d'incompétence, soyez indulgent et non désobligeant, car sans vous(ainsi que les membres de ce forum génial),nous les nuls, sommes voués à l'échec perpétuel.
A près de 70 ans, je suis très heureuse de pouvoir progresser lentement mais sûrement et garder un pied dans cet univers internet moderne de programmation.Je vous demande donc un peu de compréhension et de patience pour la satisfaction du plus grand nombre d'adhérents à ce forum.
Encore mille mercis pour votre collaboration. Afin de compléter mes connaissances et poursuivre la compréhension,voulez-vous m'aider à récupérer les noms suivant la 1ère méthode proposée :à savoir modifier les 2 selects pour récupérer directement les noms . J'ai essayé mais dès que je modifie le select de la liste sélection, cette liste déroulante reste vide.
Mes respectueuses salutations pour ce travail harassant de bénévole mais oh !combien utile pour la formation continue et de plus totalement désinteréssé.
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 10h52   #10
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour Claudine,
sache que tu as tout mon respect, et mon admiration.
Ta volonté d'apprentissage est tout à ton honneur.
Quand je pense que ma mère sait juste consulter ses emails sur son portable (ce qui n'est déjà pas si mal à 77 ans) !

De mon côté, je pratique une forme d'humour parfois (souvent !) ironique, voire sarcastique, mais j'essaie de ne jamais être désobligeant.
Il m'arrive aussi d'être vexant ou cassant, mais sans jamais aucune méchanceté.

Bref ! ceci pour dire que je suis toujours disposé à t'aider à progresser.

Peux-tu nous donner :
-> ton code actuel (avec tes dernières corrections) ?
-> le "code source généré" (sur I.E. : onglet "Page" -> "Afficher la source")

ps : Pour la table "coordonnées", voici un rappel de conseil, que je t'avais donné ici :
Citation:
Je te conseille vivement d'utiliser des conventions d'écriture, et des noms de variables/champs/fichiers/fonctions... explicites et clairs.
Notamment les 2 champs "cat" et "selection", que tu aurais pu/dû nommer "nom_cat" et "nom_sel" (par exemple), ce qui évitait tout risque de confusion.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2011, 15h59   #11
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Bonjour Jreaux62
Voici le code source généréj'apprends une nouvelle chose!)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
	<title>Document sans titre</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
	<script type="text/javascript">
	function modifcombo()
	{
		var nom_categorie = document.form1.selectcategorie.value;
		document.location.replace("ListeslieesModif.php?categorie=" + nom_categorie );
	}
	</script>
 
</head>
 
<body>
 
	<p>Essai formulaire</p>
 
	<form name="form1" method="post" action="ListeslieesModifRep.php">
	<table width="100%" border="1">
	<tr>
	    <td>categorie:</td>
		<td>
			<select id="selectcategorie" name="selectcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
				<option value="1" selected="selected">Métiers</option>
				<option value="2">Particuliers</option>
				<option value="3">Jardins</option>
 
			</select>
		</td>
	</tr>
	<tr>
		<td>selection :</td>   
        <td>
			<select id="selectselection" name="selectselection" class="txt16-000000">		
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
				<option value="1">Boulanger</option>	
				<option value="2">Plombier</option>	
				<option value="3">Electricien</option>	
 
			</select>
		</td>
	</tr>
	<tr>
        <td colspan="2">
			<input type="submit" name="envoyer" value="envoyer" />
		</td>
	</tr>
	</table>
	</form>
 
</body>
</html>
?>
LE CODE ACTUEL/
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
 
php
// Connexion à la base
 
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
 
 
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
?>
 
<?php
// initialisation/recuperation des différentes selections
// categorie
if (isset($_GET['categorie'])){
	$categorie= $_GET['categorie'];
} elseif (isset($_POST['selectcategorie'])){
	$categorie = $_POST['selectcategorie'];
} else {
	$categorie = '';
}
// selection
if (isset($_POST['selectselection'])){
	$selection = $_POST['selectselection'];
} else {
	$selection = '';
}
?>
 
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
	<title>Document sans titre</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
	<script type="text/javascript">
	function modifcombo()
	{
		var nom_categorie = document.form1.selectcategorie.value;
		document.location.replace("ListeslieesModif.php?categorie=" + nom_categorie );
	}
	</script>
 
</head>
 
<body>
 
	<p>Essai formulaire</p>
 
	<form name="form1" method="post" action="ListeslieesModifRep.php">
	<table width="100%" border="1">
	<tr>
	    <td>categorie:</td>
		<td>
			<select id="selectcategorie" name="selectcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	
		// Execution requete : tous les categories
				$ma_req = "SELECT * FROM T_CATEGORIES;";					  
				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
 
				// Affectation des variables utilisees pour l'affichage
				if (mysql_num_rows($res_req)!=0) { // resultat non vide
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_categorie = $une_ligne["id_categorie"];
						$nom_categorie = $une_ligne["nom_categorie"];
						$sel_categorie = ($id_categorie == $categorie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
		<td>selection :</td>   
        <td>
			<select id="selectselection" name="selectselection" class="txt16-000000">		
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	  		// Execution requete : les selection des catégories selectionnées 
			$ma_req = "SELECT * FROM T_SELECTIONS WHERE id_categorie = '".$categorie."';";
				$res_req = mysql_query($ma_req) or die("Selection table \"T_SELECTIONS\" impossible");
				// Affectation des variables utilis?es pour l'affichage
				if (mysql_num_rows($res_req)!=0) // resultat non vide
				{  
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_selection = $une_ligne["id_selection"];
						$nom_selection = $une_ligne["nom_selection"];
						$sel_selection = ($id_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
        <td colspan="2">
			<input type="submit" name="envoyer" value="envoyer" />
		</td>
	</tr>
	</table>
	</form>
 
</body>
</html>
?>
ET ENFIN LA REPONSE/(tableau html à remplir avec les données de la table coordonnées choisies après choix dans les listes liées)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
<?PHP
$host = 'localhost';
$user = 'root';
 
$pass = '';
$db = 'clients';
 
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
 
       $select = "SELECT id,cat,selection,nom,prenom,numtel,codepostal,ville FROM coordonnees WHERE  cat='". $categorie."' AND selection='".$nom_selection."'";
 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
 
// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
	//echo $selection;
    echo '<table bgcolor="FFFFFF">'."\n";
        // première ligne on affiche les titres dans les colonnes
        echo '<tr>';
		echo '<td bgcolor="#669999"><b><u>id</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>cat</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>selection</u></b></td>';
 
        echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>prenom</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>numtel</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>codepostal</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>ville</u></b></td>';
		echo '</tr>'."\n";
    // lecture et affichagelesrésultats sur les colonnes, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
		echo '<td bgcolor="#CCCCCC">'.$row["id"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["cat"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["selection"].'</td>';
        echo '<td bgcolor="#90EE90">'.$row["nom"].'</td>';
        echo '<td bgcolor="#90EE90">'.$row["prenom"].'</td>';
		echo '<td bgcolor="#9ACD32">'.$row["numtel"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["codepostal"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["ville"].'</td>';
		echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
 
// on libère le résultat
mysql_free_result($result);
?>
Je tiens compte de vos remarques pour toutes nouvelles tables ou bdd mais si je change maintenant les noms de la table coordonnées, je dois tout recommencer à zéro, car j'ai déjà de nombreux logiciels qui y sont dépendants
Mille remerciements pour votre aide.
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 17h00   #12
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par Claudine Voir le message
j'ai déjà de nombreux logiciels qui y sont dépendants
Me voila fort impressionné !

1/ Dans le code "actuel" : ?> en trop à la fin (à supprimer)
Citation:
</html>
?>
2/ Comme déjà conseillé : mets le code de connexion à la BdD dans un fichier (connexion_bd.php) à part, et met juste dans tes fichiers :
Code :
<?php require_once('connexion_bd.php'); ?>
3/ Question : ce que tu as appelé "LA REPONSE" :
- c'est le fichier ListeslieesModifRep.php ?
- il est en "include" ? dans quel fichier ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2011, 17h59   #13
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Bonjour Jreaux62.
Oui, bien sûr quand je me relis une troisième fois ce n'est pas clair!
Le code actuel : c'est le fichier principal(ListeslieesModif.php) avec un 'POST' action= ListesliéesModifRep.php (c'est ce dernier fichier que j'ai appelé "La reponse").
J'ose espérer avoir repondu correctement!
Donc ma question: comment modifier les 2 selects pour récupérer directement les noms du fichier(ListeslieesModif.php) et faire apparaître le tableau des coordonnées dans ListelieesModifRep.php?
Merci pour votre aide
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 18h11   #14
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Voilà à quoi doit ressembler le fichier ListesliéesModifRep.php :

1/ traitement php : en haut du fichier
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
// connexion a la base de donnees
require_once('connexion_bd.php');
 
// -------------------------
// RECUPERATION depuis le formulaire
// id_categorie
if (isset($_POST['selectcategorie'])){
	$id_categorie = $_POST['selectcategorie'];
} else {
	$id_categorie = '';
}
// id_selection
if (isset($_POST['selectselection'])){
	$id_selection = $_POST['selectselection'];
} else {
	$id_selection = '';
}
 
// -------------------------
// AVANT DE FAIRE LA REQUETE -> PROTECTION contre INJECTION SQL 
$bd_id_categorie = mysql_real_escape_string($categorie);
$bd_id_selection = mysql_real_escape_string($selection);
 
// -------------------------
// ON RECUPERE LES NOMS :
// REQUETE : nom_categorie
$cat_select 	= "SELECT nom_categorie FROM T_CATEGORIES WHERE id_categorie= '" .$bd_id_categorie. "';"; 
$cat_result 	= mysql_query($cat_select,$link) or die ('Erreur : '.mysql_error() );
$cat_row 	=  mysql_fetch_array($cat_result);
$nom_categorie = $cat_row['nom_categorie'];
// REQUETE : nom_selection
$sel_select 	= "SELECT nom_selection FROM T_SELECTIONS WHERE id_selection= '" .$bd_id_selection. "';"; 
$sel_result 	= mysql_query($sel_select,$link) or die ('Erreur : '.mysql_error() );
$sel_row 	=  mysql_fetch_array($sel_result);
$nom_selection = $sel_row['nom_selection'];
 
// -------------------------
// AVANT DE FAIRE LA REQUETE -> PROTECTION contre INJECTION SQL 
$bd_nom_categorie = mysql_real_escape_string($nom_categorie);
$bd_nom_selection = mysql_real_escape_string($nom_selection);
 
// -------------------------
// REQUETE : LES COORDONNEES
$select 	= "SELECT id, cat, selection, nom, prenom, numtel, codepostal, ville 
		FROM coordonnees 
		WHERE cat = '". $bd_nom_categorie."' AND selection = '".$bd_nom_selection."';";
$result 	= mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total 	= mysql_num_rows($result);
// -------------------------
?>
2/ début du code html : head, avec style CSS
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE HTML">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Test</title>
 
	<script type="text/javascript">
	</script>
 
	<style type="text/css">
#matable {
	background-color:#FFFFFF;
	border-collapse:collapse;
	border:1px solid #666;
}
#matable th { /* première ligne on affiche les titres dans les colonnes */
	background-color:#669999;
	font-weight:bold;
	font-style:underline;
}
#matable td { /* autres lignes (courante) */
	background-color:#CCCCCC;
}
#matable td.tdnomprenom { /* autres lignes (special) */
	background-color:#90EE90;
}
#matable td.tdtelephone { /* autres lignes (special) */
	background-color:#9ACD32;
}
	</style>
 
</head>
3/ corps de la page : body
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<body>
 
<?php
// ON AFFICHE LES COORDONNEES
// si on a récupéré un résultat on l'affiche.
if($total>0) {
?>
	<table id="matable">
 
	<!-- ENTETE : première ligne on affiche les titres dans les colonnes -->
	<thead>
		<tr>
			<th>id</th>
			<th>cat</th>
			<th>selection</th>
			<th>nom</th>
			<th>prenom</th>
			<th>numtel</th>
			<th>codepostal</th>
			<th>ville</th>
		</tr>
	</thead><!-- fin entete du tableau -->
 
    <!-- CORPS : lecture et affichage des résultats sur les colonnes, 1 résultat par ligne. -->
	<tbody>
<?php	while($row = mysql_fetch_array($result)) { ?>
		<tr>
			<td><?php echo htmlentities($row["id"]); ?></td>
			<td><?php echo htmlentities($row["cat"]); ?></td>
			<td><?php echo htmlentities($row["selection"]); ?></td>
			<td class="tdnomprenom"><?php echo htmlentities($row["nom"]); ?></td>
			<td class="tdnomprenom"><?php echo htmlentities($row["prenom"]); ?></td>
			<td class="tdtelephone"><?php echo htmlentities($row["numtel"]); ?></td>
			<td><?php echo htmlentities($row["codepostal"]); ?></td>
			<td><?php echo htmlentities($row["ville"]); ?></td>
		</tr>
<?php	} ?>
	</tbody><!-- fin corps du tableau -->
 
	</table><!-- fin du tableau -->
<?php
} else { // si pas de résultat :
?>
	Pas d'enregistrements dans cette table...
<?php
}
// on libère le résultat
mysql_free_result($result);
?>
 
</body>
</html>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/09/2011, 16h20   #15
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Bonjour Jreaux62,
Merci pour ce travail qui me montre très bien la structure du fichier surlequel j'ai bien travailler. Si je ne me trompe ,il s'agit bien de la 2ème méthode que vous aviez suggérée. J'avais pu à l'aide des 5 dernières lignes le réaliser avec succès. Peu importe dans ce cas çi, j'ai rencontré 2 problèmes:
1) Des variables indéfinies c'est-à-dire bd_id_categorie et bd_id_categorie ainsi que bd_nom_categorie et bd_nom_selection. J'ai donc tout simplement supprimé le bd_ partout et tout fonctionne à condition d'annuler:
2)
Code :
1
2
3
4
 
// AVANT DE FAIRE LA REQUETE -> PROTECTION contre INJECTION SQL 
$bd_id_categorie = mysql_real_escape_string($categorie);
$bd_id_selection = mysql_real_escape_string($selection);
Bizare avec le(2)?
Veux-tu voir où est le problème? et vérifier le formulaire(ListelieesModif.php)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
 
<?php
// connexion a la base de donnees
require_once('connect-bd.php');
 
// initialisation/recuperation des différentes selections
// categorie
if (isset($_GET['categorie'])){
	$categorie= $_GET['categorie'];
}
 
?>
 
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
	<title>Document sans titre</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
	<script type="text/javascript">
	function modifcombo()
	{
		var id_categorie = document.form1.selectcategorie.value;
		document.location.replace("ListeslieesModif.php?categorie=" + id_categorie );
	}
	</script>
 
</head>
 
<body>
 
	<p>Essai formulaire</p>
 
	<form name="form1" method="post" action="ListeslieesModifRep.php">
	<table width="100%" border="1">
	<tr>
	    <td>categorie:</td>
		<td>
			<select id="selectcategorie" name="selectcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	
		// Execution requete : tous les categories
				$ma_req = "SELECT * FROM T_CATEGORIES;";					  
				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
 
				// Affectation des variables utilisees pour l'affichage
				if (mysql_num_rows($res_req)!=0) { // resultat non vide
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_categorie = $une_ligne["id_categorie"];
						$nom_categorie = $une_ligne["nom_categorie"];
						$sel_categorie = ($id_categorie == $categorie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
		<td>selection :</td>   
        <td>
			<select id="selectselection" name="selectselection" class="txt16-000000">		
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	  		// Execution requete : les selection des catégories selectionnées 
			$ma_req = "SELECT * FROM T_SELECTIONS WHERE id_categorie = '".$categorie."';";
				$res_req = mysql_query($ma_req) or die("Selection table \"T_SELECTIONS\" impossible");
				// Affectation des variables utilis?es pour l'affichage
				if (mysql_num_rows($res_req)!=0) // resultat non vide
				{  
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_selection = $une_ligne["id_selection"];
						$nom_selection = $une_ligne["nom_selection"];
						$sel_selection = ($id_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
        <td colspan="2">
			<input type="submit" name="envoyer" value="envoyer" />
		</td>
	</tr>
	</table>
	</form>
 
</body>
</html>
Mes plus chaleureux remerciements
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 16h51   #16
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Il fallait juste modifier (erreur d'écriture de ma part, mais faute de lecture de la tienne !) :
Citation:
$bd_id_categorie = mysql_real_escape_string($categorie);
$bd_id_selection = mysql_real_escape_string($selection);
par :
Citation:
$bd_id_categorie = mysql_real_escape_string($id_categorie);
$bd_id_selection = mysql_real_escape_string($id_selection);
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/09/2011, 18h04   #17
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
(Re)bonjour Jreaux62,
Parfait et pourtant j'y avait consacré pas mal de temps!
Pourquoi l'expresson "$bd_id.....? Quelle est l'utilité du bd?
Je vous cite:"Si tu veux récupérer les noms, alors il faut :
- SOIT modifier les 2 selects pour récupérer directement les noms (et le reste du code en conséquence),
- SOIT récupérer les noms A PARTIR des 2 ids récupérés (2 requêtes à faire).
Voulez-vous modifier le début du formulaire joint au précédent message pour que puisse appliquer la 1ère méthode(modifier les 2 selects pour récupérer directement les noms) pour que j'essaie de trouver la solution?
Sincères remerciements pour votre aide précieuse.
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 18h21   #18
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
$bd_id_......., c'est juste pour bien te FAIRE COMPRENDRE que ces variables :
- doivent être PROTEGEE contre les injections SQL ;
-> pour être utilisées dans les requêtes.

On peut mettre ce qu'on veut, comme nom de variable.
Mais comme je l'ai déjà dit : "utiliser des noms explicites évite les confusions".

Ce qui est IMPORTANT, c'est de BIEN COMPRENDRE ce qu'on fait.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 18h26   #19
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par Claudine Voir le message
1- SOIT modifier les 2 selects pour récupérer directement les noms (et le reste du code en conséquence),
Voulez-vous modifier le début du formulaire joint au précédent message pour que puisse appliquer la 1ère méthode (modifier les 2 selects pour récupérer directement les noms) pour que j'essaie de trouver la solution?
C'est simple :
remplacer :
Citation:
$sel_selection = ($id_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
<option value="<?php echo $id_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>
par :
Citation:
$sel_selection = ($nom_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
<option value="<?php echo $nom_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>
+ Idem pour nom_categorie.
+ autres changements, que je te laisse faire.

=> DANS CE CAS, c'est bien nom_selection et nom_categorie qu'on récupère depuis le formulaire.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/09/2011, 17h07   #20
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Bonjour Jreaux62,
C'est tellement simple que je suis incapable d'obtenir le résultat escompté!
Encore mieux, la 2ème liste(selection) reste vide! avec en plus la disparition du bouton envoyer. J'y perd mon latin et mes méninges surchauffent
Voulez-vous regarder au formulaire pour signaler mes erreurs?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
<?php
// connexion a la base de donnees
require_once('connect-bd.php');
 
// initialisation/recuperation des différentes selections
// categorie
if (isset($_GET['nom_categorie'])){
	$categorie= $_GET['nom_categorie'];
}
?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
	<title>Document sans titre</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
	<script type="text/javascript">
	function modifcombo()
	{
	nom_categorie="+ document.form1.selectcategorie.value;
	document.form1.selectcategorie.value=$categorie;	
 
	}
	</script>
 
</head>
 
<body>
 
	<p>Essai formulaire</p>
 
	<form name="form1" method="post" action="ListeslieesModifRepSelec.php">
	<table width="100%" border="1">
	<tr>
	    <td>categorie:</td>
		<td>
			<select id="nom_categorie" name="selectcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	
		// Execution requete : tous les categories
				$ma_req = "SELECT nom_categorie FROM T_CATEGORIES;";					  
				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
 
				// Affectation des variables utilisees pour l'affichage
				if (mysql_num_rows($res_req)!=0) { // resultat non vide
					while ($une_ligne = mysql_fetch_array($res_req)) {
						//$id_categorie = $une_ligne["id_categorie"];
						$nom_categorie = $une_ligne["nom_categorie"];
						$sel_categorie = ($nom_categorie == $categorie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $nom_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
		<td>selection :</td>   
        <td>
			<select id="nom_selection" name="selectselection" class="txt16-000000">		
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	  		// Execution requete : les selection des catégories selectionnées 
			$ma_req = "SELECT nom_selection FROM T_SELECTIONS WHERE nom_categorie = '".$categorie."';";
				$res_req = mysql_query($ma_req) or die("Selection table \"T_SELECTIONS\" impossible");
				// Affectation des variables utilis?es pour l'affichage
				if (mysql_num_rows($res_req)!=0) // resultat non vide
				{  
					while ($une_ligne = mysql_fetch_array($res_req)) {
					//	$id_selection = $une_ligne["id_selection"];
						$nom_selection = $une_ligne["nom_selection"];
						$sel_selection = ($nom_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $nom_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
        <td colspan="2">
			<input type="submit" name="envoyer" value="envoyer" />
		</td>
	</tr>
	</table>
	</form>
 
</body>
</html>
sincères salutations
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h56.


 
 
 
 
Partenaires

Hébergement Web