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:
Ci-joint :listeslieesBis.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
et le code: Tab.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); } ?>
Sincères remerciements
Claudine
Partager