Bonjour à tous,
je travaille sur un formulaire qui va chercher des infos dans une base de données via du PHP.
J'ai des boutons de type '<select...> </select>' et je souhaite afficher le contenu d'un champ d'une table. Ici en l'occurrence des lieux.
Voici le code que j'ai établi :
Ma question : Comment faire pour qu'à chaque ligne qui s'affiche (du menu déroulant) j'attribue un lien (suivant le lieu bien sûr)... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Lieu : <select id="form_Lieu" name="lieu"> <?php //Controle de connexion require_once"../../_classes/Controleur_Connexion.inc.php"; //Instanciation $var=new Controleur_Connexion("*","gymnase","","","","","","","",""); $resultat=$var->consultation(); while($l=mysql_fetch_row($resultat)) { echo '<option>'.$l[2].'</option>'; } ?> </select><br>
Sinon mon deuxième soucis :
J'utilise des classes en php objet pour la connexion et les requêtes. C'est mon prof qui m'a aidé à les faire, ce que je ne comprends pas c'est que j'ai un résultat unaire. Du coup j'utilise une boucle while pour afficher les résultats dès que ma réponse à plus d'une ligne (dans la base de données).
Voici un bon exemple :
Je vous affiche mon controleur de connexion et ma classe de consultation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //Controle de connexion require_once"../../_classes/Controleur_Connexion.inc.php"; //Instanciation $var=new Controleur_Connexion("*","club","","","","","","","",""); $resultat=$var->consultation(); echo '<table>'; echo '<tr bgcolor="#CCC"><td> id du club </td><td> Nom du club </td><td> Numéro du club </td><td> Couleur du 1er maillot </td><td> Couleur du 2eme maillot </td><td> website </td><td> logo </td><td> informations surle club </td></tr>'; while($l=mysql_fetch_row($resultat)) { echo '<tr><td bgcolor="#CCC">'.$l[0].'</td><td>'.$l[1].'</td><td bgcolor="#CCC">'.$l[2].'</td><td>'.$l[3].'</td><td bgcolor="#CCC">'.$l[4].'</td><td>'.$l[5].'</td><td bgcolor="#CCC">'.$l[6].'</td><td>'.$l[7].'</td></tr>'; } echo '</table>';
Controleur :
Classe Consultation
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 class Controleur_Connexion { //Attributes private $select; private $from; private $where; private $groupby; private $having; private $orderby; private $insert; private $values; private $update; private $set; //Operations function __construct($as_select,$as_from,$as_where,$as_groupby,$as_having,$as_orderby,$as_insert,$as_values,$as_update,$as_set) { $this->select = $as_select; $this->from = $as_from; $this->where = $as_where; $this->groupby =$as_groupby; $this->having =$as_having; $this->orderby =$as_orderby; $this->insert = $as_insert; $this->values = $as_values; $this->update =$as_update; $this->set =$as_set; //echo "<br />construct_connexion ",$as_select," ",$as_from," ",$as_where," ",$as_groupby," ",$as_having," ",$as_orderby," ",$as_insert," ",$as_values," ",$as_update," ",$as_set,"<br />"; } function consultation()//test ok { require_once("Requete_Consultation.inc.php"); $modele = new Requete_Consultation($this->select,$this->from,$this->where,$this->groupby,$this->having,$this->orderby); //echo "<br /> fonction consultation 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />"; $modele->connexion_Cons("localhost","","root",""); //echo "<br /> fonction consultation 2 <br />",print_r($modele),"<br />"; $resultat=$modele->requete_Cons(); //echo "<br />fonction consultation 3 ",print_r($resultat),"<br />"; $modele->deconnexion_Cons(); return($resultat);//$resultat_unaire contient le resultat de la requete } function modification()//test ok { require_once("Requete_Modification.inc.php"); $modele = new Requete_Modification($this->insert,$this->value); //echo "<br /> fonction Modification 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />"; $modele->connexion_Mod("localhost","","root",""); //echo "<br /> fonction Modification 2 <br />",print_r($modele),"<br />"; $resultat=$modele->requete_Mod(); //echo "<br />fonction Modification 3 ",print_r($resultat),"<br />"; $modele->deconnexion_Mod(); return($resultat);//$resultat_unaire contient le resultat de la requete } function insertion() { require_once("Requete_Insertion.inc.php"); $modele = new Requete_Insertion($this->insert, $this->values); //echo "<br /> fonction insertion 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />"; $modele->connexion_Ins("localhost","","root",""); //echo "<br /> fonction insertion 2 <br />",print_r($modele),"<br />"; $resultat=$modele->requete_Ins(); //echo "<br />fonction insertion 3 ",print_r($resultat),"<br />"; $modele->deconnexion_Ins(); return($resultat);//$resultat_unaire contient le resultat de la requete } function suppression() { require_once("Requete_Suppression.inc.php"); $modele = new Requete_Suppression($this->from, $this->where); //echo "<br /> fonction Suppression 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />"; $modele->connexion_Sup("localhost","","root",""); //echo "<br /> fonction Suppression 2 <br />",print_r($modele),"<br />"; $resultat=$modele->requete_Sup(); //echo "<br />fonction Suppression 3 ",print_r($resultat),"<br />"; $modele->deconnexion_Sup(); return($resultat);//$resultat_unaire contient le resultat de la requete } } // Fin Class Controleur_Connexion
Je suis un peu perdu je ne vois pas de méthodes. Peut en en mettant des liens sur les lieux dans la base de données..enfin je sais vraiment pas. Si vous avez une réponse ou une autre méthode je suis prenant.
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 class Requete_Consultation //test ok { //Attributs requetes private $select; private $from; private $where; private $groupby; private $having; private $orderby; //attributs private $connexion; //_select,from,where,groupby,having,orderby,insert,values,update,set,delete function __construct($as_select,$as_from,$as_where,$as_groupby,$as_having,$as_orderby) { $this->select = $as_select; $this->from = $as_from; $this->where = $as_where; $this->groupby =$as_groupby; $this->having =$as_having; $this->orderby =$as_orderby; //echo "<br />construct_Consultation ",$as_select," ",$as_from," ",$as_where," ",$as_groupby," ",$as_having," ",$as_orderby,"<br />"; } function connexion_Cons($as_hote,$as_base,$as_user,$as_pwd) { $lien_bd = mysql_connect($as_hote,$as_user,$as_pwd) ; if($lien_bd) { $select_base = mysql_select_db($as_base,$lien_bd) ; if($select_base) {$this->connexion = $lien_bd ;return $lien_bd ;} else return false; } else return false; } function requete_Cons() { $ls_select = "select " . $this->select . " from " .$this->from ; if($this->where) { $ls_select1 =$ls_select." where ".$this->where; $ls_select=$ls_select1; //echo "_where_ ",$ls_select; }else{ } if($this->groupby) { $ls_select2 =$ls_select." groupe by ".$this->groupby; $ls_select=$ls_select2; //echo "_group by_ ",$ls_select; } if($this->having) { $ls_select3 =$ls_select." having ".$this->having; $ls_select=$ls_select3; //echo "_having_ ",$ls_select; } if($this->orderby) { $ls_select4 =$ls_select." order by ".$this->orderby; $ls_select=$ls_select4; //echo "_order by_ ",$ls_select; } //echo "<br/>","Requete_Consultation 2 ","<pre>",print_r($ls_select),"</pre>"; // --- Exécution de la requête $rs = mysql_query($ls_select, $this->connexion) ; //echo "<br/>","Requete_Consultation 3 ","<pre>",print_r($rs),"</pre>"; return $rs; } function deconnexion_Cons() { mysql_close($this->connexion); } } // Fin Class requete_Consultation
Merci de l'aide et de vos conseils
Partager