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 :

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>
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)... ?

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 :

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>';
Je vous affiche mon controleur de connexion et ma classe de consultation.
Controleur :
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
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
 
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
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.

Merci de l'aide et de vos conseils