IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

formulaire / php / base de données et classes


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 40
    Points : 22
    Points
    22
    Par défaut formulaire / php / base de données et classes
    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

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    Je me remercie tout seul ^^

    J'ai trouvé la solution, c'était vraiment très simple. Enfin j'ai pas poussé mes tests pour voir si ça fonctionnait à 100% mais une bonne partie.

    Je vais mettre résolu et mon code ci-dessous, pour respect au forum.
    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
     
    <FORM id="monForm" method="POST" action="formCreation.php" >
     
     
    Intitulé : <input type="text" id="form_Intitulé" name="Intitulé"/> <br>
     
    Catégorie : <select id="form_Catégorie" name="categorie">
     
    <?php
    	//Controle de connexion
    	require_once"../../_classes/Controleur_Connexion.inc.php";
    	//Instanciation					
    	$var=new Controleur_Connexion("id_cfsa,nom_cfsa","categorieformationstageanimateur","","","","","","","","");
    	$resultat=$var->consultation();
    	while($l=mysql_fetch_row($resultat))
    	{
    		echo '<option>'.$l[1].'</option>';
    	}
    ?>
     
    </select><br>
     
    Date : <input id="form_Date" type="text" /><br>
     
    Heure de début : <input type="text" id="form_HeureDébut" name="HeureDébut" size="4" /> h <input type="text" id="form_MinuteDébut" name="MinuteDébut" size="4" /><br>
     
    Heure de fin : <input type="text" id="form_HeureFin" name="HeureFin" size="4" /> h <input type="text" id="form_MinuteFin" name="MinuteFin" size="4" /><br>
     
    Durée facturée : <select id="form_DuréeFacturée" name="DuréeFacturée">  </select><br>
     
    Lieu : <select name="lieu"> 
    <?php
    	//Controle de connexion
    	require_once"../../_classes/Controleur_Connexion.inc.php";
    	//Instanciation					
    	$var=new Controleur_Connexion("*","club","","","","","","","","");
    	$resultat=$var->consultation();
    	while($l=mysql_fetch_array($resultat))
    	{
    		echo '<option value="'.$l[0].'">'.$l[1].'</option>';
    	}
    ?>
    </select><br>
     
    Description : <textarea id="form_Description" name="Description" /> </textarea><br>
     
    Méthodologie : <textarea id="form_Méthodologie" name="Méthodologie" /></textarea><br>
     
    Intervenants : <textarea id="form_Intervnants" name="Intervenants" /></textarea><br>
     
    Remarques : <textarea id="form_Remarques" name="Remarques" /></textarea><br>
     
    <input type="submit" name="bouton" value="Envoyer" />
     
    </FORM>
     
    <?php
    	extract($_POST);
     
    	if ($bouton=="Envoyer") 
        	{
    		if ($_POST['lieu']==10) { echo "c'est bon j'ai réussi"; }
    		}
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Insertion données formulaire dans base de données
    Par westlaux dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/06/2007, 20h17
  2. formulaire / php / base de données
    Par amandine_drooplette dans le forum Langage
    Réponses: 6
    Dernier message: 07/06/2007, 13h14
  3. Formulaire et base de données
    Par Néo{le pélo du 974} dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 12h04
  4. Formulaire et base de données
    Par Marye dans le forum IHM
    Réponses: 4
    Dernier message: 08/02/2007, 22h07
  5. [Conception] Formulaire et base de donnée ?
    Par heldev dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/03/2006, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo